3

我有 ac# 类,我们称之为TwoButtonsHolder. 在这堂课中,我有 2 个UIElements我想使用 StoryBoards 制作动画。让我们称它们为ButtonAand ButtonB。因为我想让他们两个同时制作动画,所以我决定将他们所有的动画放在一个 Storyboard 对象中(或者有更好的方法吗?)。所以现在我正试图在后面的代码中创建故事板对象,但我被困在我必须定义目标属性的部分。通常,当我声明动画时,我使用这样的代码来设置属性

Storyboard.SetTargetProperty(myDoubleAnimation,
                             new PropertyPath(UIElement.OpacityProperty));

现在我在 TwoButtonsHolder 类型的目标对象中有 UIElement。如何创建故事板并将动画目标属性设置为TwoButtonsHolder.ButtonA.UIElement.OpacityProperty?使用单个故事板为多个对象设置动画以使动画同时运行,这种设计是否糟糕?(仅供参考,我想在后面的代码中尝试这个,还不想进入 XAML,因为我发现它太复杂且难以学习恕我直言)。谢谢

编辑:只是想补充一点,这两个按钮有不同的动画,我把它们放在同一个故事板中的唯一原因是让它们同时开始动画

4

1 回答 1

9

在一个 Storyboard 中包含多个对象的动画绝对不是糟糕的设计。

你会这样写:

var animationA = new DoubleAnimation(...);
Storyboard.SetTarget(animationA, ButtonA);
Storyboard.SetTargetProperty(animationA, new PropertyPath(UIElement.OpacityProperty));

var animationB = new DoubleAnimation(...);
Storyboard.SetTarget(animationB, ButtonB);
Storyboard.SetTargetProperty(animationB, new PropertyPath(UIElement.OpacityProperty));

var storyboard = new Storyboard();
storyboard.Children.Add(animationA);
storyboard.Children.Add(animationB);
storyboard.Begin();
于 2013-02-19T16:50:53.420 回答