我想在我的TabControl的每个tabItem上显示图像和文本。
所以,我按如下方式创建了一个Style:
<TabControl.Resources>
<Style TargetType="TabItem">
<Style.Setters>
<Setter Property="Header">
<Setter.Value>
<StackPanel Orientation="Horizontal" Background="#FF2A2A2A" Margin="-7,-2" Cursor="Hand">
<Image Source="{Binding Tag}" Margin="10"/>
<TextBlock Text="{Binding Content}" FontSize="32" Foreground="White" Margin="0,10,10,10"/>
</StackPanel>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
</TabControl.Resources>
现在在TabItem中:
<TabItem Tag="Images/Plus.png" Content="Create New" />
但是我没有在任何tabItems上看到任何标题??????
答案 0 :(得分:1)
您需要使用RelativeSource
向上移动Visual树以使您的属性绑定正常工作。 By default it will search for property in DataContext of Image and not on TabItem
。
<Image Source="{Binding Tag, RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=TabItem}}" Margin="10"/>
,同样适用于TextBlock
:
<TextBlock Text="{Binding Content, RelativeSource={RelativeSource
Mode=FindAncestor, AncestorType=TabItem}}"
FontSize="32" Foreground="White" Margin="0,10,10,10"/>
答案 1 :(得分:0)
指定样式的名称
<TabControl.Resources>
<Style x:Key="TabItemStyle" TargetType="{x:Type TabItem}">
<Style.Setters>
并在TabItem中指示样式
<TabItem Tag="Images/Plus.png" Content="Create New" Style="{StaticResource TabItemStyle}" />