WPF:SizeToContent =" WidthAndHeight" + WindowState ="最小化"窃听器

时间:2016-05-19 21:03:37

标签: c# wpf xaml

当我将窗口的默认属性设置为:

SizeToContent="WidthAndHeight"WindowState="Minimized"

窗口右侧会有黑色部分。

要重现它,请尝试制作一个新的WPF项目并按上述方法设置属性,然后添加:

<StackPanel>
    <Button>HELLO</Button>
    <Button>HELLO</Button>
</StackPanel>

当你运行它时,它看起来像这样......

enter image description here

但在设计模式下,它看起来很好..

enter image description here

如果您尝试调整窗口大小,按钮将捕捉到位置并修复布局。或者,如果删除这两个属性中的任何一个,黑色部分将会消失。

这有什么工作吗?这是一个已知的错误吗?

2 个答案:

答案 0 :(得分:3)

似乎这是一个已知的问题,他们无法修复。

  

WPF团队最近审核了这个问题,并且不会解决这个问题,因为此时团队正在关注影响最多WPF开发人员的错误。如果您认为这是错误解决的,请使用任何必要的支持细节重新激活此错误。

     

我们感谢您的反馈。但是,下一版本的WPF将不会解决此问题。谢谢。

答案 1 :(得分:3)

Chris' answer所述,这是一个已知错误。虽然解决方法很简单。只需将以下覆盖添加到您的窗口类:

protected override void OnStateChanged(EventArgs e)
{
    base.OnStateChanged(e);

    InvalidateMeasure();
}

当窗口状态发生变化时,这将强制WPF重做窗口的布局,从而得到正确的结果。