如何在 WPF 中获取工具窗口标题栏高度?

Posted

技术标签:

【中文标题】如何在 WPF 中获取工具窗口标题栏高度?【英文标题】:How to get a tool window title bar height in WPF? 【发布时间】:2011-01-25 03:50:14 【问题描述】:

WPF 将标题栏高度包含在总窗口高度中,而不是仅使用客户端内容区域高度。

有没有办法禁用此行为? 如果不是,如何获取工具窗口标题栏的高度?

我知道 SystemParameters.CaptionHeight 属性和 SystemParameters.WindowCaptionHeight 属性,但它们都返回常规窗口标题栏的高度。这不是工具窗口的正确值,因为此类窗口的标题栏较小。我需要类似 SystemParameters.ToolWindowCaptionHeight

谢谢。

【问题讨论】:

【参考方案1】:

客户区的大小是窗口根元素的实际大小:

public double ClientWidth

    get  return ((FrameworkElement)this.Content).ActualWidth; 


public double ClientHeight

    get  return ((FrameworkElement)this.Content).ActualHeight; 

【讨论】:

这个属性在我的上下文中没有用,因为它是只读的。如果有办法设置客户区大小,我将能够实现我想要做的事情。 我还需要在窗口显示之前完成所有工作,并且当时没有设置ActualWidth / ActualHeight。【参考方案2】:

您可以退回到System.Windows.Forms.SystemInformation.ToolWindowCaptionHeight。虽然它在 WinForms 命名空间中,但它几乎不是 WinForms 唯一的类。

【讨论】:

感谢 Lars,完美运行。我宁愿避免将 Windows 窗体引用添加到我的项目中,但这将在有本机 WPF 解决方案之前进行。

以上是关于如何在 WPF 中获取工具窗口标题栏高度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在引导程序中获取窗口的高度和宽度

如何在WPF中窗口栏上添加按钮?

如何在 WPF 中的窗口标题栏上呈现按钮等?

避免 WPF 状态栏在窗口垂直调整大小时增加其高度

在 wpf 中,我如何使数据网格适合窗口高度

Wpf窗口标题栏鼠标活动