【问题标题】:TabControl Styles and Using Different ImagesTabControl 样式和使用不同的图像
【发布时间】:2013-12-22 17:56:27
【问题描述】:

我希望能够为 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:\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 创建单独的样式,还是有更有效的方法?

【问题讨论】:

    标签: wpf styles styling tabitem


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多