2010-11-14 75 views
3

我想要样式的TabItem标题,使用路径来定义标题的形状。WPF:是否可以将路径大小调整为布局大小,但是仍然可以伸展它?

我被困在一个问题,我似乎无法解析:

如果我设置的路径Stretch属性为“无”,并且也不能如果我的TabItem的标题文字是长。

如果我设置的路径Stretch属性来“填充”,它会伸展,以至于每个TabItem的标题将是相同的宽度TabControl的 - 这意味着每行只有一个很宽的TabItem头......

你知道一种方法来扩展布局的路径(取决于TabItemHeader内容),但不是更多?

如果有人能帮我解决这个问题,我会非常高兴......当我正在寻找解决方案时,我感到非常恼火。

谢谢:-)

+0

请张贴一些代码... – 2010-11-14 18:11:24

回答

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> 
+0

Hey Meleak!正是我需要的!谢谢 :-) – 2010-11-14 19:55:12

1

但是请注意渲染性能!只要UI未被呈现,绑定到ActualWidth和ActualHeight将导致绑定错误。绑定错误代价昂贵......避免这种情况的最好方法是在调用SizeChanged时在代码中设置绑定。这是测量和尺寸测量完成后的第一个时刻。

相关问题