2013-02-21 80 views
0

我想讓它可以在用戶點擊TabControl中的TabItem標頭時執行命令。WPF TabControl刪除標題填充?

這裏是我的代碼:

 <TabControl TabStripPlacement="Left" BorderThickness="1,0,0,0"> 
     <TabItem Selector.IsSelected="{Binding IsGeneric, Mode=OneWay}"> 
      <TabItem.Header> 
       <Button Content="Generic" Margin="0" Command="{Binding GenericSelected}"></Button> 
      </TabItem.Header> 
      <V:WasteEstimationGenericView DataContext="{Binding}"></V:WasteEstimationGenericView> 
     </TabItem> 
     <TabItem Selector.IsSelected="{Binding IsSTP, Mode=OneWay}"> 
      <TabItem.Header> 
       <Button Content="STP" Margin="0" Command="{Binding STPSelected}"></Button> 
      </TabItem.Header> 
      <V:WasteEstimationSTPView DataContext="{Binding STPViewModel}"></V:WasteEstimationSTPView> 
     </TabItem> 
    </TabControl> 

但是我最終這個東西看起來是這樣的: TabControl Headers

可有人請告訴我如何使我的TabControl頭消耗所有可用空間TabItem頭?我原本想用標籤做這件事,但它有一個問題,如果用戶點擊標題的邊緣將不會執行命令,我仍然更喜歡使用按鈕,但按鈕允許用戶定位到哪裏他們點擊。

回答

2

您將需要修改TabItem ControlTemplate,更具體的ContentPresenter,設置VerticalAlignmentHorizontalAlignment伸展和設置Margin到你想要的東西,它默認爲12, 2,12,2。

0

試試這個:

<TabControl TabStripPlacement="Left" BorderThickness="1,0,0,0" HorizontalContentAlignment="Stretch"> 
+0

Nah沒有區別。 – 2013-02-21 23:03:49

+0

我創建了一個基於你的代碼減去視圖綁定和STP按鈕寬度拉伸以滿足通用按鈕寬度的測試項目。你能創建一個新窗口,只測試TabControl嗎?我懷疑TabControl的父容器導致您的問題。 – failedprogramming 2013-02-21 23:06:06

+0

需要很多工作來隔離這個控件,但是我沒有在相同長度的按鈕之後,我正在尋找它們來填充可用空間等。同時在選項卡控件上設置水平內容對齊方式似乎沒有改變按鈕尺寸。 – 2013-02-21 23:16:46