如何设置WPF窗口宽度等于标题栏中的内容?

5
如果我在WPF中有如下窗口:
<Window
    Title="Alter Window Width so that the complete title is shown."
    SizeToContent="WidthAndHeight"
    WindowStartupLocation="CenterOwner">

这个窗口会自动调整大小,以确保其所有内容都可见。但是它不会同样地对标题进行调整,因此当窗口显示时,标题的一部分可能会被隐藏。

有什么方法可以确保窗口的宽度足够显示标题栏中的标题呢?


你的“Title”是否是动态的?如果不是,为什么不直接给窗口分配一个“MinWidth”? - vesan
1个回答

7
在窗口中添加一个隐藏的文本块:
<TextBlock 
   Text="{Binding Path=Title,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}" 
   Visibility="Hidden" 
   Height="0" 
   Margin="100 0 0 0">
</TextBlock>
Margin属性允许将窗口控件推到一边。
Height属性使控件不占用垂直空间。
Visibility属性可能不是必需的,因为高度为零,但将其设置为hidden会使其在画布上占用空间但不显示任何内容。

+1 为答案加分,但这仍然没有显示完整的标题。其中 20% 仍然隐藏着。这是因为标题栏除了标题文本之外还包含其他内容,如最小化、最大化按钮等。 - teenup
1
将边距值增加到100以适应它,或在窗口上关闭它们。 - benPearce

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接