禁用 wpf 窗口中的最大化容量

问题描述 投票:0回答:3

我正在尝试禁用 wpf 窗口中的最大化容量(不是最大化按钮),但到目前为止没有成功。

我正在使用 WindowStyle="none" 的窗口,但是当我将窗口拖动到屏幕的最顶部时,操作系统会“最大化”该窗口(顺便说一句,这非常糟糕)。

我上传了 3 张图片来展示到底发生了什么。

(但是,由于我没有 10 声望,所以我必须发布链接。抱歉。我不能把所有 3 个链接都放出来,只能放其中 2 个,但第一个只是窗口正常工作)

期间: http://i58.tinypic.com/243lr89.jpg

之后:

c# wpf window maximize
3个回答
6
投票

使用窗口状态改变事件:

private void Window_StateChanged(object sender, EventArgs e)
{
    if (this.WindowState == System.Windows.WindowState.Maximized) 
    {
        this.WindowState = System.Windows.WindowState.Normal; 
    }
}

1
投票

设置窗口的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>

如何在应用程序中禁用 Aero Snap?


0
投票

我知道这已经很老了,但我找到了比建议的更好的解决方案: 您可以重写 WndProc 方法,而不是捕获最大化事件:

protected override void WndProc(ref Message m) {
    if(m.Msg == 0x0112 && m.WParam == new IntPtr(0xF032)
        return;
    base.WndProc(ref m);
}
© www.soinside.com 2019 - 2024. All rights reserved.