【问题标题】:Templated TabItem header does not show Header content模板化的 TabItem 标头不显示标头内容
【发布时间】:2014-09-08 08:53:46
【问题描述】:

我有一个带有两个 TabItem 的 TabControl,我为它创建了一个模板。

<TabControl x:Name="MainInfoTabControl" Grid.Row="3" Grid.RowSpan="7" Grid.Column="0" Grid.ColumnSpan="2" 
                    Background="{x:Null}"
                    BorderBrush="{x:Null}"
                    >
            <TabControl.Resources>

                <Style x:Key="TabHeaderStyle" TargetType="{x:Type TabItem}">
                    <Setter Property="Background" Value="{x:Null}" />
                    <Setter Property="FontWeight" Value="DemiBold" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type TabItem}">
                                <Border x:Name="HeaderBorder" BorderBrush="White" BorderThickness="2" CornerRadius="10,10,0,0" >

                                    <TextBlock Text="" VerticalAlignment="Center" Margin="5"></TextBlock>


                                </Border>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.Resources>


            <TabItem Header="Main Details" 
                     Margin="0.5, 0.5, 0, 0.5"
                     FontSize="15"
                     MinHeight="40" Width="200"                     
                     Style="{StaticResource TabHeaderStyle}"
                     >         

            </TabItem>


            <TabItem Header="Pets Owned" 
                     Margin="0.5, 0.5, 0, 0.5"
                     FontSize="15"
                     MinHeight="40" Width="200"                     
                     Style="{StaticResource TabHeaderStyle}"
                     >

            </TabItem>


</TabControl>

问题是 tabItem 的 Header 没有显示出来。在我的模板中有一个 TextBlock,但我无法动态自定义 TextBlock.Text(至少在运行时绑定或稍微更改 Text 属性)

TabItem1 应该是“所有者详细信息”,而 TabItem2 应该是“宠物拥有”

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您覆盖默认的 tabitem 模板,您需要以某种方式获得父级的值。

     <TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Header}" 
                VerticalAlignment="Center"
                Margin="5">
     </TextBlock>
    

    <TextBlock Text="{TemplateBinding Property=Header}"
              VerticalAlignment="Center" 
              Margin="5">
    </TextBlock>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      相关资源
      最近更新 更多