gpt4 book ai didi

wpf - 如何使用 DataTrigger 启动 Storyboard ?

转载 作者:行者123 更新时间:2023-12-04 16:36:39 27 4
gpt4 key购买 nike

这是我第一次在这里提出问题,这是一个我完全是新手的主题,所以请在这里耐心等待...

我正在开发一个带有 MVVM 架构的 WPF GUI 应用程序,我和我的团队采用的方法是拥有多个 View ,当 UI 经历它的 Action 时,它们必须在屏幕上“飞来飞去”。我们面临的问题是如何在 UI 从一个 View 转换到另一个 View 时运行动画。我的主视图上有一个按钮,按下该按钮将更改一个属性,让一个 View 知道它需要离开,我一直试图将其绑定(bind)到动画的开头。我设置了计时器,可以在我的 Storyboard动画期间延迟 View 更改,但我无法让我的动画运行!在 XAML 中,我在 DataTrigger 中设置了我的 Storyboard(在 Blend 中生成),如下所示:

<UserControl.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding StandbyViewModel.LeavingStandbyView}" Value="true">
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames ...> // I've got 22 of these statements in my storyboard

我在 DoubleAnimationUsingKeyFrames 行上遇到了 Blend 生成的 Storyboard.TargetName="label"属性的问题,该属性解决了我正在制作动画的 UI 的每个部分。我得到的错误是:
TargetName property cannot be set on a Style Setter

似乎我不允许在这里使用 TargetName 属性,但我还能如何指定哪些动画映射到哪个 UI 组件?在我创建的 0.5 秒动画期间,我有 7 个 UI 元素正在移动并更改不透明度,所以我想我必须有一些方法来识别它们中的每一个。

我的方法在这里不好,还是我做错了什么?我一直在阅读很多关于此的不同帖子,但我不确定该怎么做。似乎对触发器和用户控件可以做什么类型有严格的规定,但我不知道其中任何一个。

任何帮助或建议将不胜感激。

最佳答案

我实际上不确定是否可以,但如果可以,那么您需要使用 DataTrigger.EnterActions Property ,当触发对象变为事件状态时应用:

<UserControl.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding StandbyViewModel.LeavingStandbyView}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames ...>

关于wpf - 如何使用 DataTrigger 启动 Storyboard ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469078/

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