Управление вкладками wpf - используйте кнопку внутри свойства заголовка элемента вкладки
Как я могу использовать кнопку внутри свойства заголовка элемента вкладки? Я использую этот код:
<TabControl VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
BorderThickness="0"
TabStripPlacement="Left">
<TabItem>
<TabItem.Header>
<Button>Test Button</Button>
</TabItem.Header>
<Label>Tab content</Label>
</TabItem>
</TabControl>
Но это не работает.
1 ответ
Решение
В вашем XAMl поместите этот код в заголовок tabItem, это нарисует кнопку закрытия
<TabItem.Header>
<Grid Height="27"
VerticalAlignment="Top"
HorizontalAlignment="Center"
Width="150">
<TextBlock Name="headerTextblock"
VerticalAlignment="Center"
FontSize="15"
Margin="16,3,15,4">
Item Header</TextBlock>
<Button Name="button_close"
Click="TabItem_RemoveClicked"
Margin="138,-2,-8,13"
RenderTransformOrigin="0.471,0.449">
<Button.Template>
<ControlTemplate TargetType="Button">
<Path Data="M0,0 L8,8 M8,0 L0,8"
StrokeThickness="3"
VerticalAlignment="Center"
Margin="6.333,1.667,1.5,1.833"
Stretch="Fill"
Height="12.5">
<Path.Style>
<Style TargetType="{x:Type Path}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="False">
<Setter Property="Stroke"
Value="LightGray" />
</Trigger>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Stroke"
Value="red" />
</Trigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
</TabItem.Header>
В вашем классе C# поместите определение кнопки закрытия, которую вы можете скрыть или убрать, вкладка "Код" приведет к свертыванию элемента вкладки.
private void TabItem_RemoveClicked(object sender, RoutedEventArgs e)
{
CloasableTabItem.Visibility = Visibility.Collapsed;
CloasableTabItem.IsSelected = false;
TabControl1.SelectedItem = TabItem1;
}
Если приведенный выше ответ помог вам, пожалуйста, пометьте его как ответ. Если вы все еще сталкиваетесь с проблемой, пожалуйста, попросите, чтобы я мог уточнить больше.