【问题标题】:ContentPresenter triggers not workingContentPresenter 触发器不起作用
【发布时间】:2012-06-17 01:23:53
【问题描述】:

我在 ControlTemplate 中有一个 ContentPresenter,试图布局 TabItem。我希望标题内 TextBlock 的前景色在选择选项卡时更改颜色。我的模板如下:

<TabControl.Resources>
    <Style TargetType="TabPanel">
        <Setter Property="HorizontalAlignment" Value="Right" />
    </Style>
    <Style TargetType="TabControl">
        <Setter Property="BorderThickness" Value="0,0,0,0"></Setter>
    </Style>
    <Style TargetType="TabItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type TabItem}">
                    <ContentPresenter x:Name="ContentSite"
                                         VerticalAlignment="Center"
                                         HorizontalAlignment="Center"
                                         ContentSource="Header"
                                         Margin="30,10,30,10"/>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter TargetName="ContentSite" Property="TextBlock.Foreground" Value="DarkGoldenrod"></Setter>
                        </Trigger>    
                        <Trigger Property="IsSelected" Value="False">
                            <Setter TargetName="ContentSite" Property="TextBlock.Foreground" Value="Black"></Setter>
                        </Trigger>    
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</TabControl.Resources>

不幸的是,触发器什么也没做。 SO 上的其他几篇帖子显示了一个看起来与我一模一样的Setter 标签,使用TargetName 确保我们只更改标题而不是整个标签。该属性被识别并编译,但没有任何反应。

到底发生了什么,我做错了什么?这让我发疯了好几个小时!

【问题讨论】:

    标签: wpf controltemplate contentpresenter


    【解决方案1】:

    知道了!

    我有这样的标题:

    <TabItem.Header>
        <TextBlock>My Header</TextBlock>
    </TabItem.Header>
    

    问题是,已经在标题内有一个 TextBlock,您不需要再次换行。

    <TabItem.Header>
        My Header
    </TabItem.Header>
    

    而且它有效。

    【讨论】:

      【解决方案2】:

      对我来说完全符合预期,您的问题可能出在其他地方...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-02
        • 2018-10-17
        • 2017-04-22
        • 2011-03-16
        • 2019-01-17
        • 2012-09-04
        • 2013-04-26
        • 1970-01-01
        相关资源
        最近更新 更多