C# 如何在Silverlight中为多个对象使用一个故事板?

C# 如何在Silverlight中为多个对象使用一个故事板?,c#,silverlight,xaml,storyboard,C#,Silverlight,Xaml,Storyboard,我用一个动画制作三个不同的图像。我如何使用相同的情节提要来瞄准这三个目标?谢谢 C# XAML 不幸的是,无法在同一个DoubleAnimation中设置多个目标(尽管如果您至少可以指定一个目标类型来正确命中所有图像会很好??但是,不,也不能这样做…) 然而。。。我已经使用了一个技巧,你可以在你的实例中应用它,你将它应用到一个实例中,并允许它通过像这样的绑定为其余的实例提供相同的效果 <Storyboard x:Name="FadeImageStoryboard"> &l

我用一个动画制作三个不同的图像。我如何使用相同的
情节提要来瞄准这三个目标?谢谢

C#

XAML



不幸的是,无法在同一个
DoubleAnimation
中设置多个目标(尽管如果您至少可以指定一个
目标类型来正确命中所有图像会很好??但是,不,也不能这样做…)

然而。。。我已经使用了一个技巧,你可以在你的实例中应用它,你将它应用到一个实例中,并允许它通过像这样的绑定为其余的实例提供相同的效果

<Storyboard x:Name="FadeImageStoryboard">
    <DoubleAnimation From="1.0" To="0.0" 
                     Duration="0:0:1"
                     RepeatBehavior="Forever" AutoReverse="True"
                     Storyboard.TargetName="cloud1" 
                     Storyboard.TargetProperty="Opacity" />
</Storyboard>

现在我们把它喂给一个目标,让其他目标吃它

<!-- Yea, I stripped your properties for the sake of example :P -->
<StackPanel>

    <Image x:Name="cloud1" Source="Cloud.png" Height="115" Width="184"/>

    <Image x:Name="cloud2" Source="Cloud.png" Height="115" Width="184" 
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
    <Image x:Name="cloud3" Source="Cloud.png" Height="115" Width="184"
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
    <Image x:Name="cloud4" Source="Cloud.png" Height="115" Width="184"
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
    <Image x:Name="cloud5" Source="Cloud.png" Height="115" Width="184"
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
</StackPanel>

并不是说这是“最好”的方法,但这是我多年来找到的唯一方法。否则,您就必须咬紧牙关,为每个单独的目标创建一个单独的
DoubleAnimation

希望这有帮助


干杯

我尝试从xaml中删除targetname,并通过以下方式在我的类中添加目标:<代码>(此.Resources[“FadeImageStoryboard”]作为情节提要)等。。。但它不是这样的。你不标记你的问题的答案吗?这是一个旧的,我已经忘记了它,直到另一次投票来了。没有一个答案被标记为正确的@ChrisW。如你所愿接受它。啊,如果它不是一个答案,那么就不要标记它。也许我应该问问你这对你有用吗。我只是碰巧注意到你在这里提出的问题中只有一两个被标记过。别担心,祝你周末愉快。谢谢你的回答。看起来很好很公平。。。但是,我只能显示一幅图像。有什么原因吗?只有一张图片和所有图片一样?在这种情况下,请更改图像源,使其具有各自的图像名称/路径。或者,如果只是一个图像周期,我会认为这是因为你正在做的其他事情。所有这些方法都是查看Cloud1的不透明度属性,并将其反映到其他图像上。这只是一个图像。我只是想说清楚;3x
具有相同的源。我将用完整的XAML代码编辑我的问题。这个类和我现在写的差不多。我想你可以将Image1上的默认不透明度设置为=1,但我不能保证这是罪魁祸首,因为这是默认值。
<Storyboard x:Name="FadeImageStoryboard">
    <DoubleAnimation From="1.0" To="0.0" 
                     Duration="0:0:1"
                     RepeatBehavior="Forever" AutoReverse="True"
                     Storyboard.TargetName="cloud1" 
                     Storyboard.TargetProperty="Opacity" />
</Storyboard>
<!-- Yea, I stripped your properties for the sake of example :P -->
<StackPanel>

    <Image x:Name="cloud1" Source="Cloud.png" Height="115" Width="184"/>

    <Image x:Name="cloud2" Source="Cloud.png" Height="115" Width="184" 
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
    <Image x:Name="cloud3" Source="Cloud.png" Height="115" Width="184"
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
    <Image x:Name="cloud4" Source="Cloud.png" Height="115" Width="184"
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
    <Image x:Name="cloud5" Source="Cloud.png" Height="115" Width="184"
           Opacity="{Binding Opacity, ElementName=cloud1}"/>
</StackPanel>