Я пытался следовать этой инструкции о том, как это сделать, но я только начинаю работать с 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>
Вы получаете:
Если у вас это есть в вашем Window или UserControl (а не в ресурсном словаре), вы можете подключить его так, чтобы щелкнуть, и вы можете удалить элемент из коллекции данных или непосредственно из TabControl.
Самый простой способ - использовать 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>
Надеюсь это поможет.