在我的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”中没有“名称”背景“。”任何想法,我如何设置背景画笔到边框画笔鼠标悬停,而不用后面的代码和适当的事件吗?
提前致谢,
弗兰克
答案 0 :(得分:1)
Background
是Control
而非UIElement
的属性,这就是它无效的原因。
您需要使用以下内容:
... Storyboard.TargetProperty="(Control.Background)" ...
答案 1 :(得分:0)
它不起作用,因为我不能在VisualStateManager中使用Binding,如下所述:Using TemplateBinding in ObjectAnimationUsingKeyFrames