【问题标题】:disable maximize capacity in a wpf window在 wpf 窗口中禁用最大化容量
【发布时间】:2015-08-19 09:29:02
【问题描述】:

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

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

我上传了 3 张图片来展示正在发生的事情。

(但是,由于我没有 10 个声望,我不得不发布链接。对此很抱歉。我不能放所有 3 个链接,只有 2 个,但第一个只是正常工作的窗口)

期间:

之后:

【问题讨论】:

  • 尝试设置 maxwidth 和 maxheight 属性然后再试一次。让我知道这是否有效。
  • 嗨阿宾。我将它设置为 2000 只是为了尝试一下,但它不起作用。
  • 试试这个 MaxHeight="350" MaxWidth="525"

标签: c# wpf window maximize


【解决方案1】:

使用窗口状态改变事件:

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

【讨论】:

  • 有效,但是当它跳出来跳回来时,看着它是一件非常丑陋的事情。该事件太晚了,无法在生产中发挥作用。
  • 不幸的是,这是我知道和使用的唯一解决方案。如果您可以在这里找到并分享,我很想知道其他解决方案。
  • 迄今为止最好的解决方案是 p/invoke on message preview。
【解决方案2】:

设置窗口的 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。
  • 不,它仍然让我最大化窗口,但现在“最大化”窗口的面积是“maxwidth”乘以“maxheight”。
  • @JulianDavidBautistaOsorio 你试过这种方式吗? MaxHeight="350" MaxWidth="525" MinHeight="350" MinWidth="525"
  • 是的,我的窗口也有这些 minheight 和 minwidth 字段的值。这就是发生的情况:我将窗口拖到顶部:我的工作窗口的边框设置为最小值,最大化窗口占用(但无用)的黑暗区域设置为最大值。最大化窗口后它不会让我拖动它。
猜你喜欢
  • 1970-01-01
  • 2013-04-11
  • 1970-01-01
  • 2017-11-24
  • 2011-01-11
  • 2012-02-29
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多