2010-11-14 76 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時在代碼中設置綁定。這是測量和尺寸測量完成後的第一個時刻。

相關問題