如何为标签项的标题设置样式?

时间:2019-09-04 07:52:53

标签: c# .net wpf xaml tabs

问题是,当我按代码中所示进行操作时,我无法在不损失字体大小的情况下更改每个标题中的文本。

我正在使用dragablz库中的许多选项卡,并且我需要为标题定义默认样式,以定义字体大小和其他属性。

<Grid Margin="0,0,2,0">
        <dragablz:TabablzControl Margin="8" TabStripPlacement="Left">
            <dragablz:TabablzControl.ItemContainerStyle>
                <Style TargetType="{x:Type dragablz:DragablzItem}" BasedOn="{StaticResource MaterialDesignDragableTabItemVerticalStyle}">
                    <Setter Property="Width" Value="100" />
                    <Setter Property="Height" Value="40" />
                </Style>
            </dragablz:TabablzControl.ItemContainerStyle>
            <TabControl.Resources>
                <Style TargetType="TabItem">
                    <Setter Property="Header">
                        <Setter.Value>
                            <TextBox FontSize="30">Hello</TextBox>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.Resources>

            <TabItem>
                <TabItem.Header>
                    <TextBlock Text="Tab No. 2" FontSize="20" Foreground="Black"></TextBlock>
                </TabItem.Header>
                <TextBlock>Hello World</TextBlock>
            </TabItem>

            <TabItem>
                <TextBlock FontSize="24">We Have Tearable Tabs!</TextBlock>
            </TabItem>
        </dragablz:TabablzControl>
    </Grid>

1 个答案:

答案 0 :(得分:0)

您可以使用Header来代替设置HeaderTemplate属性。如果页眉是简单文本,它将获得所需的FontSize和Foreground。但它也可以完全替换为一些复杂的内容

<Style TargetType="{x:Type TabItem}">
    <Setter Property="HeaderTemplate">
        <Setter.Value>
            <DataTemplate>
                <ContentPresenter TextElement.FontSize="30" 
                                  TextElement.Foreground="Blue" 
                                  Content="{Binding Path=Header, RelativeSource={RelativeSource AncestorType=TabItem}}"/>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>
<TabItem>
    <TabItem.Header>
        <TextBlock Text="Tab No. 2" FontSize="20" Foreground="Black"></TextBlock>
    </TabItem.Header>
    <TextBlock>Hello World</TextBlock>
</TabItem>

<TabItem Header="Tab No. 2">
    <TextBlock FontSize="24">We Have Tearable Tabs!</TextBlock>
</TabItem>