3
我有两个文本框使用相同的StaticResource作为其前景色。WPF:动画StaticResource更新使用该资源的其他控件
当我应用改变第一个文本框的颜色的动画时,第二个文本框的颜色也发生了变化。
如果我不使用StaticResource,则不会发生这种情况,所以我猜测动画正在更改资源中定义的画笔的颜色,而不是第一个TextBox上的前景颜色。
这是我使用的代码;
<Page.Resources>
<SolidColorBrush x:Key="TextBrush"
Color="Black" />
<Storyboard x:Key="Glow"
TargetProperty="Foreground.Color"
Storyboard.TargetName="txt1">
<ColorAnimation To="Blue"
Duration="0:0:0.1" />
</Storyboard>
<Storyboard x:Key="Normal"
TargetProperty="Foreground.Color"
Storyboard.TargetName="txt1">
<ColorAnimation To="Yellow"
Duration="0:0:0.1" />
</Storyboard>
</Page.Resources>
<StackPanel>
<StackPanel.Triggers>
<EventTrigger RoutedEvent="StackPanel.MouseEnter">
<BeginStoryboard Storyboard="{StaticResource Glow}" />
</EventTrigger>
<EventTrigger RoutedEvent="StackPanel.MouseLeave">
<BeginStoryboard Storyboard="{StaticResource Normal}" />
</EventTrigger>
</StackPanel.Triggers>
<TextBlock Name="txt1"
Foreground="{StaticResource TextBrush}">Text One</TextBlock>
<TextBlock Name="txt2"
Foreground="{StaticResource TextBrush}">Text Two</TextBlock>
</StackPanel>
反正有这个吗?
马特
或者只是在资源上设置`x:Shared =“False”`。虽然没有验证过。 – 2011-02-01 17:57:48