wpf - 限制 Window.SizeToContent 仅展开

标签 wpf window

是否可以以某种方式限制 Window.SizeToContent仅扩大尺寸?

我有一个通用窗口,动态填充 TabControl 中的内容。由于一开始并不知道每个 TabItem 将有多大,所以我无法预先计算所需的大小(尽管我只关心高度)以在不滚动的情况下显示所有内容。

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

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

最佳答案

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

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

关于wpf - 限制 Window.SizeToContent 仅展开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225798/

相关文章:

c++ - 使用 WaitForMultipleObjects 时如何获取哪个对象超时?

c# - 如何在嵌套元素上设置视觉状态?

c# - 为什么添加 ContentControl 会导致我的应用程序进入中断模式?

c# - 我应该如何使用 MVVM 模式在 Wpf 应用程序上实现本地化?

python - 屏幕尺寸变化时 Kivy 图像更新

powershell - 使用 VBscript 隐藏 Powershell 窗口 : whitespace in the -file filepath

wpf - 如何使用tweetsharp库获取用户事件?

wpf - WPF Revit 插件的最佳起点

jquery - 新窗口无法在 IE 中调整大小

c# - 如何在 Windows 中获取和设置系统音量