gpt4 book ai didi

c# - 如何将 Storyboard用于 1 个以上的目标对象?

转载 作者:行者123 更新时间:2023-11-30 13:47:54 26 4
gpt4 key购买 nike

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

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

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

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

最佳答案

在一个 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();

关于c# - 如何将 Storyboard用于 1 个以上的目标对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14962365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com