是否可以通过某种方式限制 Window.SizeToContent 仅扩展大小?

我有一个普通的窗口,该窗口动态地填充了TabControl中的内容。由于一开始不知道每个TabItem的大小,因此我无法预先计算所需的大小(尽管我只关心高度)才能显示全部内容而无需滚动。

每当更改选项卡时,启用SizeToContent都会自动将大小调整为所需的大小。可以只在当前 View 需要更多空间时才展开,但我不喜欢在需要较少空间时也可以缩小窗口。是否可以将SizeToContent行为限制为仅允许扩展窗口大小?还是可以以其他方式模拟行为,同时仍然考虑到选项卡控件旁边的窗口框架和其他组件,从而产生正确的结果?

我尝试 Hook 到不同的窗口事件中,以找出更改选项卡时新尺寸信息的去向,但是窗口上唯一真正有用的信息 OnChildDesiredSizeChanged 并没有产生确定性的结果(对于某些选项卡,它被称为,对于其他选项卡,则为')。您还有其他想法吗?

最佳答案

您可以尝试在加载Window后使用FrameworkElement.MinHeightFrameworkElement.MinWidth设置最小高度/宽度。

public void WindowLoaded()
{
    this.MinHeight = this.ActualHeight;
    this.MinWidth = this.ActualWidth;
}

10-06 02:02