XAML С# получить расположение окна

79
12

Как программисты для XAML С# находят текущую позицию окна приложения wpf? есть функция, чтобы найти место запуска, но важно, что, когда окно перемещается путем перетаскивания его на другую сторону, позиция изменяется, поэтому мне всегда нужна текущая позиция, так что другая функция действует соответственно относительно позиции окна wpf.

спросил(а) 2021-01-19T17:48:57+03:00 6 месяцев, 2 недели назад
1
Решение
64

Я не уверен, как найти позицию окна, но с помощью курсора я сделал это, чтобы найти текущее местоположение, может быть, это может помочь вам. для того, чтобы знать текущую позицию курсора, вы должны быть внутри окна, иначе он всегда будет 0,0. Код выглядит так:

Xaml Файл:

<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Application 2" Height="350" Width="325"
MouseDown="Window_MouseDown"
AllowDrop="True" DragOver="Window_DragOver">
<StackPanel>
<Label Name="lblInfo1" Content="Info 1"/>
<Label Name="lblInfo2" Content="Info 2"/>
</StackPanel>
</Window>

Файл С#:

private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
DragDrop.DoDragDrop((DependencyObject)e.Source, "Sample", DragDropEffects.Copy);
}

private void Window_DragOver(object sender, DragEventArgs e)
{
System.Windows.Point p1 = Mouse.GetPosition(this);
lblInfo1.Content = string.Format("Mouse.GetPosition: {0}, {1}", p1.X, p1.Y);

System.Windows.Point p2 = e.GetPosition(this);
lblInfo2.Content = string.Format("DragEventArgs.GetPosition: {0}, {1}", p2.X, p2.Y);
}

Попробуй.

ответил(а) 2021-01-19T17:48:57+03:00 6 месяцев, 2 недели назад
46

Для кнопки привязки кода с событием:

private void b_Click(object sender, EventArgs e)
{
// your code...
}

Файл Xaml:

<Button Click="ButtonClicked">Button</Button>

ответил(а) 2021-01-19T17:48:57+03:00 6 месяцев, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема