Странное поведение при положении окна WPF и масштабе больше 100%
У меня есть установка с тремя мониторами: левый - 1920x1080 при 100%, центральный и правый - при 3840x2160 при 150%.
Когда я установил свойство Left окна в 2487, оно появляется на полпути между средним и правым мониторами. Когда я установил свойство Left на 2488, окно переместилось ближе к середине центрального монитора. Это не имеет смысла для меня, даже если я принимаю во внимание DPI.
Если я установлю масштаб монитора на 100%, он будет вести себя как положено. Я просто пытаюсь понять, как определить, когда окно находится близко к правому краю экрана, и это делает это невозможным.
XAML:
<Window x:Class="WpfApp2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp2"
mc:Ignorable="d"
Title="MainWindow" Height="100" Width="300">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBox x:Name="XLocationBox" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Center"></TextBox>
<Button Click="Button_Click" Grid.Column="1" Width="40" Height="30">Set</Button>
</Grid>
</Window>
Код:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Left = Convert.ToDouble(XLocationBox.Text);
}
}