Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 是否可以同时在多个文本块上设置颜色更改动画?_Wpf_Silverlight_Xaml_Windows Phone 7_Animation - Fatal编程技术网

Wpf 是否可以同时在多个文本块上设置颜色更改动画?

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一个来设置动画 如何设置一个彩色

我已经安装了一个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,因为这三种方法都是通用的。