WPF禁用窗口自动调整大小

时间:2014-10-24 22:08:55

标签: c# wpf

目前我有

    SizeToContent="WidthAndHeight" 
    ResizeMode="NoResize"

因为我想利用WPF的自动调整大小。但是当我隐藏一些按钮时,窗口宽度会缩小,这是预期的行为,但我想禁用它。基本上我希望窗口大小在渲染后保持不变。有没有一个很好的方法来做到这一点,而不是计算启动时的宽度,并在代码后面设置它?

3 个答案:

答案 0 :(得分:0)

背后的代码没有任何问题。

但您可能希望将按钮“Visibility设置为Hidden而不是Collapse,以实现所需的行为。

答案 1 :(得分:0)

当窗口根据其内容大小获得其宽度和高度时,您可以在其加载事件中设置窗口的大小(固定大小)。你应该可以在load事件中使用类似this.Width = this.ActualWidth和this.Height = this.ActualHeight的东西。

答案 2 :(得分:0)

这是我的工作: 对于窗口集:

 SizeToContent = SizeToContent.WidthAndHeight
 ContentRendered += DisableSizeToContent

最后在此处禁用SizeToContent

private static void DisableSizeToContent(object sender, EventArgs e)
{
    if (sender is Window win)
    {                
        win.SizeToContent = SizeToContent.Manual;
    }
}

仍在寻找异步绑定的解决方案!