Управление вкладками 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;
    }

Если приведенный выше ответ помог вам, пожалуйста, пометьте его как ответ. Если вы все еще сталкиваетесь с проблемой, пожалуйста, попросите, чтобы я мог уточнить больше.

Другие вопросы по тегам