2013-02-21 96 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