WPF:SizeToContent =“宽度和高度”+ WindowState =“最小化”错误

Jan*_* Go 5 c# wpf xaml

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

SizeToContent="WidthAndHeight"WindowState="Minimized"

窗口的右侧将有一个黑色部分。

要重现它,请尝试创建一个新的 WPF 项目并按上述方式设置属性,然后添加以下内容:

<StackPanel>
    <Button>HELLO</Button>
    <Button>HELLO</Button>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

但在设计模式下,它看起来不错..

在此输入图像描述

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

有解决办法吗?这是一个已知的错误?

Pet*_*iho 4

正如克里斯的回答所述,这是一个已知的错误。不过解决方法很简单。只需将以下覆盖添加到您的窗口类中:

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

    InvalidateMeasure();
}
Run Code Online (Sandbox Code Playgroud)

这将强制 WPF 在窗口状态更改时重做窗口布局,从而给出正确的结果。