使用Visual States的本地画笔资源

时间:2013-05-18 06:23:02

标签: c# wpf silverlight expression-blend visualstatemanager

我正在尝试在Blend中模板化按钮,我有以下结构:

General structure of the button template.

我想要做的是在处于 MouseOver 状态时使用视觉状态更改按钮的背景颜色。

当它开始录制 MouseOver 状态的动画时,我选择纯色画笔,一切看起来都不错:

Choosing a solid color brush.

Animation is successfully captured.

但是当我选择本地画笔资源而不是纯色画笔时,它会继续删除动画:

Choosing a local brush resource

The message showing that the animation is removed.

Animation is gone now.

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

显然,Expression Blend 4不支持此功能,但Blend for Visual Studio 2012支持此功能。手动执行此操作的一种方法是使用ObjectAnimationsUsingKeyFrames

<VisualState x:Name="MouseOver">
    <Storyboard>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background)" Storyboard.TargetName="LayoutRoot">
            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource WindowCaptionButtonPressedBackgroundBrush}"/>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

(这正是Blend for Visual Studio 2012所做的。)