Wpf 是否可以同时在多个文本块上设置颜色更改动画?
我已经安装了一个Windows Phone 7应用程序,该应用程序有一个页面和一个StackPanel StackPanel包含几个TextBlock元素 我需要以相同的方式设置所有TextBlock元素的颜色动画 不幸的是,当我使用关键帧设置彩色动画时,我只能指定一个TargetName。由于有多个TextBlock控件需要以相同的方式设置动画,这非常不方便,我认为必须有更好的方法来处理这一问题,即复制粘贴ColorAnimation定义,每个TextBlock一个来设置动画 如何设置一个彩色动画以同时应用于多个控件Wpf 是否可以同时在多个文本块上设置颜色更改动画?,wpf,silverlight,xaml,windows-phone-7,animation,Wpf,Silverlight,Xaml,Windows Phone 7,Animation,我已经安装了一个Windows Phone 7应用程序,该应用程序有一个页面和一个StackPanel StackPanel包含几个TextBlock元素 我需要以相同的方式设置所有TextBlock元素的颜色动画 不幸的是,当我使用关键帧设置彩色动画时,我只能指定一个TargetName。由于有多个TextBlock控件需要以相同的方式设置动画,这非常不方便,我认为必须有更好的方法来处理这一问题,即复制粘贴ColorAnimation定义,每个TextBlock一个来设置动画 如何设置一个彩色
编辑:我意识到这是一个WP7问题,但我已将其标记为WPF,因为我相信相同的技术将适用于两者,但如果我错了,请随时纠正我。您应该能够将动画定位于单个元素的属性,然后使用ElementName绑定在文本块之间同步值。或例如:
<TextBlock x:Name="textOne" Text="One"/>
<TextBlock x:Name="textTwo" Text="Two"
Background="{Binding Background, ElementName=textOne}"/>
在上述XAML中,一个
TextBlock
的背景绑定到另一个。如果你的故事板目标是“textOne”,那么另一个TextBlock
也会产生动画。
<StackPanel.Resources>
<SolidColorBrush x:Key="TBBackground" Color="White"/>
<Style TargetType="TextBlock">
<Setter Property="Background" Value="{StaticResource TBBackground}"/>
</Style>
<StackPanel.Resources>
<!- ... -->
<Storyboard>
<ColorAnimation Storyboard.Target="{StaticResource TBBackground}"
Storyboard.TargetProperty="Color"
To="Red"/>
</Storyboard>
编辑:对其进行了测试,发现不变性存在一些问题,可能需要在Silverlight中包装颜色,否则可能会带来一些麻烦。使用故事板更改文本块。你可以用故事板设计文本块的样式,然后在需要时执行故事板。是的,刚刚遇到了这个相关的问题。这正是我想要的答案(即使它看起来有点迂回)。谢谢您还可以将其标记为XAML,因为这三种方法都是通用的。