所以我试图在我的辅助监视器上打开一个最大化的窗口。这一切都很好,除了它的高度比它应该的低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;
}
但是CCD_ 1周围存在缺陷。如果你正在使用,请告诉我,我会更新答案。
对于Window 10,这篇文章将有所帮助。在窗口10中没有设计CCD_ 2,因此存在一些像素问题。我不确定你的操作系统上的Window
装饰设置是什么,但试试这个。
this.Height = SystemParameters.WorkArea.Height + SystemParameters.FixedFrameHorizontalBorderHeight;
this.Width = SystemParameters.WorkArea.Width + SystemParameters.FixedFrameVerticalBorderWidth;
如果有其他边框被删除,也可以尝试添加ResizeFrame
边框大小。