选项卡控制样式和使用不同的图像



我希望能够为IsSelected=true和IsSelected=false的不同tabItems设置不同的图像。到目前为止,我有这么多:

<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:UsersmyNameDocumentsVisual Studio 2013ProjectsNetworkToolsNetworkToolsimagessidebarhomeUnselected.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:UsersmyNameDocumentsVisual Studio 2013ProjectsNetworkToolsNetworkToolsimagessidebarhomeSelected.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创建单独的样式,或者有更有效的方法吗?

更好的方法是使用具有两个图像的UserControl。将一个图像的可见性绑定为另一个图像可见性的倒数,并将另一个可见性绑定到控件上的布尔值,可能称为ShowDisabled。这样,您只需拥有一个具有正确正常和禁用图像的"TwinImage"实例,并应用您的样式来翻转ShowDisabled,避免重复。

相关内容

  • 没有找到相关文章

最新更新