如何在MahApps TabControl的选项卡中添加关闭按钮?

时间:2014-12-12 23:09:18

标签: c# wpf xaml mahapps.metro

我试图遵循这条指令来解决这个问题,但我刚刚开始使用WPF。

如何使用可在不同TabControl中重用的UserControl来执行此操作? 另外一个是"标题" TabControl样式的ContentPresenter?

以下是发现的说明 https://github.com/MahApps/MahApps.Metro/issues/281

  

另一种方法是修改/创建一个样式 - 问题就是挂钩   它取决于实际的“关闭”状态。以通用的方式举办活动。

     

如果您查看TabControl样式,您将看到" Header"   ContentPresenter。如果将其包装在堆栈面板中并添加一个按钮   像这样:

<StackPanel Orientation="Horizontal">
  <Label x:Name="root" FontSize="26.67">
      <ContentPresenter ContentSource="Header"  RecognizesAccessKey="True" />
  </Label>
  <Button Content="X" />
</StackPanel>
     

你得到:

     

enter image description here

     

如果你在Window或UserControl中有这个(而不是资源)   字典),你可以连线,所以点击可以解雇,然后你可以   从数据绑定集合中删除项目或直接从   的TabControl。

1 个答案:

答案 0 :(得分:6)

最简单的方法是使用MetroTabItem。它附带属性CloseButtonEnabled来启用/禁用关闭按钮。您还可以将命令绑定到CloseTabCommandCloseTabCommandParameter

<TabControl xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls">
  <Controls:MetroTabItem Header="The Header of the TabItem"
                         CloseButtonEnabled="True"
                         CloseTabCommand="{Binding CloseTabCommand}"
                         CloseTabCommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=Header}">

    <!-- your content of the TabItem -->

  </Controls:MetroTabItem>
</TabControl>

希望这有帮助。