当我将窗口的默认属性设置为:
SizeToContent="WidthAndHeight"
和WindowState="Minimized"
,
窗口右侧会有黑色部分。
要重现它,请尝试制作一个新的WPF项目并按上述方法设置属性,然后添加:
<StackPanel>
<Button>HELLO</Button>
<Button>HELLO</Button>
</StackPanel>
当你运行它时,它看起来像这样......
但在设计模式下,它看起来很好..
如果您尝试调整窗口大小,按钮将捕捉到位置并修复布局。或者,如果删除这两个属性中的任何一个,黑色部分将会消失。
这有什么工作吗?这是一个已知的错误吗?
答案 0 :(得分:3)
似乎这是一个已知的问题,他们无法修复。
WPF团队最近审核了这个问题,并且不会解决这个问题,因为此时团队正在关注影响最多WPF开发人员的错误。如果您认为这是错误解决的,请使用任何必要的支持细节重新激活此错误。
我们感谢您的反馈。但是,下一版本的WPF将不会解决此问题。谢谢。
答案 1 :(得分:3)
如Chris' answer所述,这是一个已知错误。虽然解决方法很简单。只需将以下覆盖添加到您的窗口类:
protected override void OnStateChanged(EventArgs e)
{
base.OnStateChanged(e);
InvalidateMeasure();
}
当窗口状态发生变化时,这将强制WPF重做窗口的布局,从而得到正确的结果。