【问题标题】:How to set WPF Window's width equal to the content in its Title Bar?如何设置 WPF 窗口的宽度等于其标题栏中的内容?
【发布时间】:2015-07-02 14:02:31
【问题描述】:

如果我在 WPF 中有如下窗口:

<Window
    Title="Alter Window Width so that the complete title is shown."
    SizeToContent="WidthAndHeight"
    WindowStartupLocation="CenterOwner">

此窗口将自动调整大小以确保其所有内容都可见。但是标题就不一样了,所以有可能在显示窗口时标题的一部分会被隐藏。

如何确保窗口的宽度足以在标题栏中显示标题?

【问题讨论】:

  • 您的Title 是动态的吗?如果没有,为什么不给窗口分配一个MinWidth?

标签: c# .net wpf xaml


【解决方案1】:

在窗口中添加一个隐藏的文本块:

<TextBlock 
   Text="{Binding Path=Title,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" 
   Visibility="Hidden" 
   Height="0" 
   Margin="100 0 0 0">
</TextBlock>

Margin 允许将 Windows 控件推到一边。

高度使控件不占用垂直空间。

由于高度为零,因此可能不需要可见性,但将其设置为隐藏会导致它占用画布上的空间但什么也不显示。

【讨论】:

  • +1 作为答案,但这仍然没有显示完整的标题。其中 20% 仍然隐藏。这是因为标题栏除了标题文本之外还包含其他内容。最小化、最大化按钮等
  • 增加margin值100迎合它,或者在window上关闭它们
猜你喜欢
  • 2013-06-03
  • 1970-01-01
  • 2012-04-16
  • 2021-01-20
  • 2014-01-12
  • 2021-10-08
  • 2012-08-27
  • 2012-09-13
  • 2012-03-10
相关资源
最近更新 更多