将动画分配给WPF中的多个对象

时间:2012-02-25 02:27:43

标签: c# wpf wpf-controls storyboard

我会直接解决这个问题。在我的代码中,有一组Ellipses,即
        Ellipse[] players = new Ellipse[11];
然后,我使用DoubleAnimationWithKeyFrames在画布中动画这些椭圆,使用

sboard.Children.Add(anim);
sboard.Children.Add(anim2);
Storyboard.SetTargetName(anim, players[player - 1].Name);
Storyboard.SetTargetName(anim2, players[player - 1].Name);
Storyboard.SetTargetProperty(anim, new PropertyPath(Canvas.LeftProperty));
Storyboard.SetTargetProperty(anim2, new PropertyPath(Canvas.TopProperty));

但我想用这些省略号移动一些TextBlocks。如何为这些TextBlocks分配相同的动画和动画2?

1 个答案:

答案 0 :(得分:1)

将Ellipse和TextBlock放入容器(网格,堆栈面板,画布等)或制作UserControl,并为其设置动画而不是椭圆。

示例:

<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="WpfApplication4.UserControl1"
x:Name="UserControl">

<StackPanel x:Name="LayoutRoot">
    <Ellipse Fill="#FFF4F4F5" Height="100" Stroke="Black" Width="100"/>
    <TextBlock TextWrapping="Wrap" Text="Some Text Here" FontSize="32" HorizontalAlignment="Center"/>
</StackPanel></UserControl>