我希望能够为IsSelected = true和IsSelected = false的不同tabItem设置不同的图像。到目前为止,我有这么多:
<TabControl Margin="60,10,96,18" TabStripPlacement="Left">
<TabControl.Resources>
<DataTemplate x:Key="tabItemGeneralHeaderTemplate">
<StackPanel Orientation="Horizontal" Margin="0,-3,0,0" Height="51" Width="41">
<Image Name="tabGeneralImg" Source="C:\Users\myName\Documents\Visual Studio 2013\Projects\NetworkTools\NetworkTools\images\sidebar\homeUnselected.png" Width="41" Height="51"></Image>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected,RelativeSource={RelativeSource TemplatedParent}}" Value="True">
<Setter TargetName="tabGeneralImg" Property="Source" Value="C:\Users\myName\Documents\Visual Studio 2013\Projects\NetworkTools\NetworkTools\images\sidebar\homeSelected.png"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</TabControl.Resources>
<TabItem Name="tabItemGeneral" HeaderTemplate="{StaticResource tabItemGeneralHeaderTemplate}">
<Grid>
</Grid>
</TabItem>
<TabItem Name="tabItemGenera2" HeaderTemplate="{StaticResource tabItemGeneralHeaderTemplate}">
<Grid>
</Grid>
</TabItem>
</TabControl>
我想知道你是否必须为每个tabItem创建单独的样式,还是有更有效的方法呢?
答案 0 :(得分:0)
更好的方法是使用两张图片UserControl
。将一个图像的可见性绑定为另一个图像的可见性的反转,并将另一个可见性绑定到控件上的布尔值,可以称为ShowDisabled
。这样你只需要一个具有正确的正常和禁用图像的'TwinImage'实例,并应用你的风格翻转ShowDisabled
并避免重复。