0

我有一个UserControl并试图DoubleAnimation在后面的代码中查找(使用 FindResource)元素。示例:-

<UserControl ....
   <Canvas Width="400" Height="400" Loaded="Canvas_Loaded">
    <Canvas.Resources>
        <Storyboard x:Key="sd" x:Name="sBoard ">
            <DoubleAnimation x:Name="SomeAnimation" ...

我试图在Canvas_Loaded方法中找到“SomeAnimation”。

请帮忙

4

1 回答 1

1

FindResource方法需要一个SomeAnimation没有的资源键。您可以使用它Storyboard使用sd密钥查找资源并从那里找到您的动画。

private void Canvas_Loaded(object sender, RoutedEventArgs e)
{
    var canvas = sender as Canvas;

    var storyboard = canvas.FindResource("sd") as Storyboard;
    var someAnimation = storyboard.Children.First() as DoubleAnimation;
}

如果你这样做是为了激活动画,你可以使用BeginStoryboard方法

var storyboard = canvas.FindResource("sd") as Storyboard;
canvas.BeginStoryboard(storyboard);

或者干脆

storyboard.Begin();

希望这可以帮助

于 2013-10-08T06:22:43.903 回答