繁体   English   中英

WPF-以编程方式将Window.Windowstate设置为Maximized之后,窗口分辨率不正确

[英]WPF - Incorrect Window resolution after setting Window.Windowstate to Maximized programmatically

因此,我试图在辅助监视器上打开一个最大化的窗口。 一切正常,只是它的高度比应该的高度低2个像素。

我的辅助显示器的分辨率为1280x1024。 但是,一旦我检查了窗口,它就是1280x1022。 有人知道这个问题吗?

作业系统:Windows 10

实际的高度/宽度图像(Puush)

这是一些代码:

SecondaryMonitorWindow smw = new SecondaryMonitorWindow();
smw.Show();

XAML

Loaded="OnWindowLoaded"
WindowStartupLocation="Manual"
WindowStyle="None"
SnapsToDevicePixels="True"
Height="1280" 
Width="1024"

建设者

public SecondaryMonitorWindow()
{
    InitializeComponent();
    Instance = this;
}

事件

private void OnWindowLoaded(object sender, RoutedEventArgs e)
{
    this.MaximizeToSecondaryMonitor();
}

扩展方法

public static void MaximizeToSecondaryMonitor(this Window window)
{
    var secondaryScreen = Windows.Forms.Screen.AllScreens.Where(s => !s.Primary).FirstOrDefault();

    if (secondaryScreen != null)
    {
        if (!window.IsLoaded)
            window.WindowStartupLocation = WindowStartupLocation.Manual;

        window.Left = secondaryScreen.WorkingArea.Left;
        window.Top = secondaryScreen.WorkingArea.Top;
        window.Width = secondaryScreen.WorkingArea.Width;
        window.Height = secondaryScreen.WorkingArea.Height;

        if (window.IsLoaded)
            window.WindowState = WindowState.Maximized;
    }
}

尝试以语法方式设置参数,这样您才能达到理想的大小:

 public MainWindow()
    {            
        InitializeComponent();
        this.Height = SystemParameters.WorkArea.Height;
        this.Width = SystemParameters.WorkArea.Width;
    }

但是, Window 10周围存在错误。 如果您正在使用,请告诉我,我将更新答案。

对于Windows 10, 这篇文章会有所帮助。 窗口10中没有设计Border ,因此存在一些像素问题。 我不确定您的操作系统上的Window装饰设置是什么,但是请尝试此操作。

this.Height = SystemParameters.WorkArea.Height +  SystemParameters.FixedFrameHorizontalBorderHeight;
this.Width = SystemParameters.WorkArea.Width + SystemParameters.FixedFrameVerticalBorderWidth;

如果删除了其他一些边框,也可以尝试添加ResizeFrame边框大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM