我有一个三显示器设置:左侧为 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);
}
}