1

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

0 回答 0