Как добавить кнопку закрытия на вкладку MahApps TabControl?

1

Я пытался следовать этой инструкции о том, как это сделать, но я только начинаю работать с WPF.

Как это сделать с помощью UserControl, который я могу повторно использовать в разных TabControls? Также какой из них - "Заголовок" ContentPresenter в стиле TabControl?

Ниже приведена инструкция, найденная на https://github.com/MahApps/MahApps.Metro/issues/281

Другой способ - изменить/создать стиль - проблема затем связана с фактическим "закрытым" событием в общем виде.

Если вы посмотрите на стиль TabControl, вы увидите "Заголовок" ContentPresenter. Если вы обернете это в стеке и добавьте такую кнопку:

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

Вы получаете:

Изображение 174551

Если у вас это есть в вашем Window или UserControl (а не в ресурсном словаре), вы можете подключить его так, чтобы щелкнуть, и вы можете удалить элемент из коллекции данных или непосредственно из TabControl.

Теги:
xaml
wpf
mahapps.metro

1 ответ

5
Лучший ответ

Самый простой способ - использовать MetroTabItem. Он включает свойство CloseButtonEnabled для включения/выключения кнопки закрытия. Вы также можете привязать команду к CloseTabCommand и CloseTabCommandParameter.

<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>

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню