我想让窗口始终最大化,它可以在单个屏幕上完美运行。但是当我使用两个屏幕时(特别是当主屏幕发生变化时),我捕获了分辨率更改事件并将其最大化,但它不起作用。而且我试图处理窗口的宽度和高度,它也不起作用。
这是我的操作方式:
- 使用单个小屏幕(1366 * 768),窗口最大化。
- 再接一个大屏(1920 * 1080),设置为主屏(我们现在有两个屏),然后窗口会以大屏显示,不最大化,保持1366*768的大小(奇怪的是,它有时会最大化,但并非总是如此)。
这是我的代码:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.WindowState = WindowState.Maximized;
SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
}
//this method catch the resolution changed event
private void SystemEvent_DisplaySettingsChanged(object sender, EventsArgs e)
{
WindowState = WindowState.Maximized;
}
}
窗口 xaml 代码:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
ResizeMode="CanMinimize"
SizeToContent="Manual"
WindowStartupLocation="CenterScreen" />