【问题标题】:How to set a style for the headers of a tab Item?如何为选项卡项的标题设置样式?
【发布时间】:2019-09-04 07:52:53
【问题描述】:

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

我正在使用 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>

【问题讨论】:

    标签: c# .net wpf xaml tabs


    【解决方案1】:

    您可以使用HeaderTemplate,而不是设置Header 属性。如果 Header 是简单的文本,它将获得所需的 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 2012-05-04
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多