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

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

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

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

谢谢。

【问题讨论】:

    标签: wpf canvas window size height


    【解决方案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 解决方案之前进行。
    猜你喜欢
    • 1970-01-01
    • 2015-04-15
    • 2020-07-29
    • 1970-01-01
    • 2011-04-23
    • 2014-08-24
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多