c# - 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;
预期的行为是,无论用户是否先手动调整窗口大小,窗口都会正确最大化。
解决方案
推荐阅读
- vue.js - Vuetify 在特定网格大小上添加类
- python - 使用来自 url 的变量查询未执行 - Flask-SQLAlchemy
- javascript - 交替启用和禁用html中的按钮
- java - 使用 PPTX4j 在生成的 PPT 中替换占位符中的图像
- c# - 如何从控制台应用程序调用控制器中的方法
- r - 如何预测 cox 回归的 brier 分数?
- asp.net - 使用 Ajax.BeginForm ViewModel 帖子为空
- java - 由于 JobExecutionAlreadyRunningException 导致批处理作业失败:此作业的作业执行已在运行
- android - 具有不同活动的社交登录
- c++ - 解释一个函数