我正在尝试禁用 wpf 窗口中的最大化容量(不是最大化按钮),但到目前为止没有成功。
我正在使用 WindowStyle="none" 的窗口,但是当我将窗口拖动到屏幕的最顶部时,操作系统会“最大化”该窗口(顺便说一句,这非常糟糕)。
我上传了 3 张图片来展示到底发生了什么。
(但是,由于我没有 10 声望,所以我必须发布链接。抱歉。我不能把所有 3 个链接都放出来,只能放其中 2 个,但第一个只是窗口正常工作)
期间:
使用窗口状态改变事件:
private void Window_StateChanged(object sender, EventArgs e)
{
if (this.WindowState == System.Windows.WindowState.Maximized)
{
this.WindowState = System.Windows.WindowState.Normal;
}
}
设置窗口的MaxHeight、MinHeight 和MaxWidth、MinWidth 属性。
示例
<Window x:Class="test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" MaxHeight="350" MaxWidth="525" MinHeight="350" MinWidth="525">
</Window>
我知道这已经很老了,但我找到了比建议的更好的解决方案: 您可以重写 WndProc 方法,而不是捕获最大化事件:
protected override void WndProc(ref Message m) {
if(m.Msg == 0x0112 && m.WParam == new IntPtr(0xF032)
return;
base.WndProc(ref m);
}