禁用WPF窗口的最大化容量

5
我试图禁用WPF窗口的最大化容量(而不是最大化按钮),但到目前为止没有成功。我正在使用WindowStyle="none"的窗口,但当我将窗口拖动到屏幕的最上方时,操作系统会“最大化”窗口(非常糟糕)。我上传了3张图片来展示发生的情况。在进行中的时候:http://i58.tinypic.com/243lr89.jpg之后:http://i62.tinypic.com/f3c1mu.jpg

尝试设置maxwidth和maxheight属性,然后再试一次。如果可以,请告诉我。 - Abin
嗨,阿宾。我将其设置为2000只是为了尝试一下,但它没有起作用。 - Julian David Bautista Osorio
尝试使用 MaxHeight="350" MaxWidth="525"。 - Abin
2个回答

6

使用窗口状态改变事件:

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

2
可以运行,但是它跳出来又回去的样子非常丑陋。那个事件在生产中太晚了,没有用处。 - DonBoitnott
不幸的是,这是我所知道和使用的唯一解决方案。如果你能找到并在这里分享其他解决方案,我会很感兴趣。 - Anant Anand Gupta
到目前为止,最好的解决方案是在消息预览上使用p/invoke。 - DonBoitnott

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>

How do you disable Aero Snap in an application?


嗨。我刚刚这样做了,在两个字段中都输入了525。当我将窗口移动到顶部时,它仍然允许我最大化窗口。(但是,现在最大化窗口覆盖的区域不是整个屏幕,而只是左上角的525x525)。 - Julian David Bautista Osorio
不,它仍然让我最大化窗口,但现在“最大化”的窗口具有“maxwidth”乘以“maxheight”的区域。 - Julian David Bautista Osorio
是的,我的窗口也有最小高度和最小宽度字段的值。发生了这样的事情:我将窗口拖到顶部:我的工作窗口的边框被设置为最小值,而被最大化窗口占据(但无用的)黑暗区域被设置为最大值。在窗口最大化后,不会让我再次拖动它。 - Julian David Bautista Osorio
1
https://dev59.com/IUzSa4cB1Zd3GeqPoaZx - Abin
第一个链接对我没有帮助。但是第二个链接里面的人遇到了和我一样的问题,他的解决方案虽然不太美观,但却很有效。非常感谢你的帮助!!! :) - Julian David Bautista Osorio
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接