WPF:在Expression Blend中,如何在不同状态下更改带边框的自定义按钮的前景?

时间:2013-06-25 04:30:43

标签: wpf templates styles expression-blend

在Expression Blend 4中,我想更改不同状态下自定义按钮的Foreground。我只能更改BackgroundBorderBrush

就像这样:

enter image description here

如果状态为“Normal”,则文本“Button”的颜色为Black,而状态为“Pressed”,文本“Button”的颜色为White

Brushes Panel下的Properties Panel下,有3个属性,但没有Foreground属性: enter image description here

谁能帮帮我?我很困惑。

修改

我发现ContentControl具有Foreground属性,但ContentPresenter没有。ContentControl。我应该使用ContentPresenter而不是{{1}}?

1 个答案:

答案 0 :(得分:0)

到目前为止,我还没有找到一些方法可以通过Blend更改Foreground(我的意思是不在代码中)。在代码中,就像那样:

<ResourceDictionary ...>

    <Style x:Key="ButtonStyle1" TargetType="{x:Type Button}">
        <Setter Property="Template">
            ...
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="CommonStates">
                    ...
                    <VisualState x:Name="MouseOver">
                        <Storyboard>
                            <ColorAnimationUsingKeyFrames 
                                Storyboard.TargetProperty="(TextBlock.Foreground).(SolidColorBrush.Color)">
                                <EasingColorKeyFrame KeyTime="0" Value="Blue"/>
                            </ColorAnimationUsingKeyFrames>
                        </Storyboard>
                    </VisualState>
                    ...
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>

            <ContentPresenter .../>
            ...
</ResourceDictionary>