首页 > 解决方案 > Window Maximize 仅在先手动调整大小后才有效

问题描述

我尝试通过单击按钮来最大化/恢复窗口。如果我启动我的应用程序并单击最大化按钮,窗口将移动到它所在显示器的顶部/左侧,但不会调整到整个宽度/高度。如果我恢复窗口,然后通过拖动边框手动调整它的大小并再次单击最大化按钮,它会正确最大化。手动调整大小在使最大化工作的幕后做了什么?

我试图强制调整大小以在最大化之前设置窗口的宽度/高度,甚至使用新大小调用 Measure 但无济于事。

Window 在 XAML 中具有以下属性(调整大小模式设置为 CanResize 时也会出现问题):

SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterScreen"
WindowStyle="None"
ResizeMode="CanResizeWithGrip"

最大化/恢复的代码很简单(其中 Window 是一个 Window 对象):

   if(Window.WindowState == WindowState.Maximized)
      Window.WindowState = WindowState.Normal;
   else
      Window.WindowState = WindowState.Maximized;

预期的行为是,无论用户是否先手动调整窗口大小,窗口都会正确最大化。

标签: c#wpf

解决方案


推荐阅读