在 WPF 中启用最大化、最小化和恢复窗口(禁用手动调整大小)
我需要在我的应用程序(C# WPF 应用程序)上启用以下功能:
- 正常大小为 1024*768
- 用户可以最大化应用程序
- 用户可以最小化应用程序
- 用户可以恢复应用程序 (1024*768)
- 用户无法手动调整大小通过拖动应用程序的边框。
没有任何 ResizeMode
可以满足所有这些要求。有什么办法可以做吗?
I need to enable the following on my application (C# WPF application):
- Have normal size of 1024*768
- The user can maximize the application
- The user can minimize the application
- The user can restore the application (1024*768)
- The user cannot manually resize the application by draging its border.
There isn't any ResizeMode
the fulfills all of those requirements. Is there any way to do do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我终于找到了一个相对不错的解决方案。
这个想法是覆盖窗口的 OnStateChanged 事件,取消最小/最大约束并刷新它。
如果窗口没有最大化,我们只需应用回最小/最大约束
I've finally found a relatively decent solution.
The idea is to overide the
OnStateChanged
event of the window, cancel the Min/Max constraints and refresh it.If the window is not maximized, we simply apply back the Min/Max constraints
您可以侦听 Window.SizeChanged 事件,并在处理程序中手动将宽度和高度设置回 1027 和 768。它仍然允许用户拖动窗口的边缘来调整大小,但随后窗口将返回到其设置的大小。这样做的缺点是,每当用户尝试调整大小时,窗口就会“卡住”——这不是最漂亮的事情。照常最小化和最大化工作。
You can listen to the Window.SizeChanged event, and inside your handler manually set Width and Height back to 1027 and 768. It still allows the user to drag the window's edges to resize, but then the window returns to it's set size. The drawback of this is that the window has a "seizure" whenever the user tries resizing--not the prettiest thing to see. Minimize and Maximize work as normal.