У меня есть окно с кастомным Window Chrome сделаном на Grid которая обрабатывает два события:
private void OnTitleBarMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e) {
switch(e.LeftButton) {
case MouseButtonState.Pressed: {
this.DragMove();
break;
}
}
}
private void OnTitleBarMouseMove(object sender, System.Windows.Input.MouseEventArgs e) {
switch(e.LeftButton) {
case MouseButtonState.Pressed: {
var point = this.PointToScreen(e.MouseDevice.GetPosition(this));
this.Left = point.X - (this.RestoreBounds.Width * 0.55);
this.Top = point.Y - 20;
this.WindowState = WindowState.Normal;
this.DragMove();
break;
}
}
}
и получается если вне окна зажать ЛКМ е вести на TitleBar окна оно начнет DragMove
как сделать чтобы окно двигалось только тогда когда оно в фокусе?
Вот такой минимальный код работает у меня:
<Window x:Class="WpfTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStyle="None" Width="300" Height="200">
<Grid>
<Grid Background="Blue" VerticalAlignment="Top" MouseLeftButtonDown="Grid_MouseLeftButtonDown">
<TextBlock Text="Header" Foreground="Yellow" FontWeight="Bold"/>
</Grid>
</Grid>
</Window>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
DragMove();
}
}
Ничего дополнительно писать не требуется
Виртуальный выделенный сервер (VDS) становится отличным выбором
Работаю с DataGridView программно, и вставку новых строк с клавиатуры нужно отключитьПри этом редактирование ячеек типа DataGridViewTextBoxColumn и DataGridViewCheckBoxColumn...
Нужно из xml-шаблона сформировать запрос с применением base64UrlEncodeДля этого пробовал использовать библу Microsoft
При работе в DataGridView данные с типом Decimal отображаются с запятой, можно ли настроить проект или DataGridView, так что бы он работал с точками?