我正在尝试设置TabItem标题的样式,使用路径来定义标题的形状。
我遇到了一个我似乎无法解决的问题:
如果我将路径Stretch属性设置为“None”,如果我的TabItem标题中的文本很长,它将无法缩放。
如果我将路径Stretch属性设置为“Fill”,它会拉伸太多,以至于每个TabItem标题将与TabControl的宽度相同 - 这意味着每行只有一个非常宽的TabItem标题...
您是否知道一种拉伸布局路径的方法(取决于TabItemHeader内容),但不是更多?
如果有人可以帮助我,我会很高兴...当我正在寻找解决方案时,这很烦人。
谢谢:-)
答案 0 :(得分:5)
当您不添加任何示例代码但是说您的HeaderTemplate看起来如下所示时,您很难将路径的宽度绑定到TextBlock的ActualWidth。
<TabItem.HeaderTemplate>
<DataTemplate>
<Border x:Name="grid">
<Grid>
<Path Data="..."
Stretch="Fill"
Width="{Binding ElementName=grid, Path=ActualWidth}" />
<TextBlock Name="textBlock"
Margin="4"
FontSize="15"
Text="{Binding}"/>
</Grid>
</Border>
</DataTemplate>
</TabItem.HeaderTemplate>
答案 1 :(得分:1)
但请注意渲染性能!只要UI尚未输入,绑定到ActualWidth和ActualHeight将导致绑定错误。绑定错误很昂贵......避免这种情况的最佳方法是在调用SizeChanged时在代码中设置绑定。这是测量和尺寸测量完成后的第一个时刻。