Silverlight:在MouseOver上更改背景画笔

时间:2010-12-03 16:23:19

标签: silverlight animation

在我的Silverlight-Application中,我想在鼠标悬停时更改按钮的Background-Brush。我为我的按钮创建了一个样式并更改了MouseOver-VisualState:

<VisualState x:Name="MouseOver">
    <Storyboard>
    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Background)" Storyboard.TargetName="BorderBackground">
        <DiscreteObjectKeyFrame KeyTime="0">
            <DiscreteObjectKeyFrame.Value>
                <Background>{TemplateBinding BorderBrush}</Background>
            </DiscreteObjectKeyFrame.Value>
        </DiscreteObjectKeyFrame>
    </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>

这不起作用,因为名称空间“http://schemas.microsoft.com/client/2007”中没有“名称”背景“。”任何想法,我如何设置背景画笔到边框画笔鼠标悬停,而不用后面的代码和适当的事件吗?

提前致谢,
弗兰克

2 个答案:

答案 0 :(得分:1)

BackgroundControl而非UIElement的属性,这就是它无效的原因。

Source

您需要使用以下内容:

... Storyboard.TargetProperty="(Control.Background)" ...

答案 1 :(得分:0)

它不起作用,因为我不能在VisualStateManager中使用Binding,如下所述:Using TemplateBinding in ObjectAnimationUsingKeyFrames