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

ero*_*las 1 c# wpf xaml mahapps.metro

我试图按照这个指令来完成它,但我刚刚开始使用WPF.

如何使用可以在不同TabControl中重用的UserControl来执行此操作?TabControl样式中的哪一个是"Header"ContentPresenter ?

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

另一种方法是修改/创建一个样式 - 然后问题就是以通用的方式将它连接到一个实际的'close'事件.

如果查看TabControl样式,您将看到"Header"ContentPresenter.如果你将它包装在一个堆栈面板中并添加一个如下按钮:

<StackPanel Orientation="Horizontal">
  <Label x:Name="root" FontSize="26.67">
      <ContentPresenter ContentSource="Header"  RecognizesAccessKey="True" />
  </Label>
  <Button Content="X" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

你得到 :

在此输入图像描述

如果你在Window或UserControl中有这个(而不是资源字典),你可以连接它以便点击可以触发,然后你可以从数据绑定集合或直接从TabControl中删除该项目.

pun*_*r76 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>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.