这是我第一次在这里提问,而且涉及到我完全不熟悉的主题,请耐心与我合作...
我正在使用MVVM架构开发WPF GUI应用程序,我们采用的方法是有多个视图需要在UI移动时‘飞入’和‘飞出’屏幕。我们面临的问题是如何在UI从一个视图转换到另一个视图时运行动画。我在我的主视图上有一个按钮,当按下时会更改属性以让一个视图知道它需要离开,我一直在尝试将其绑定到我的动画开头。我设置了计时器来延迟视图的更改,以便让我的故事板动画持续一段时间,但我无法让我的动画运行!在XAML中,我已经像这样在DataTrigger中设置了我的故事板(在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
我在使用Blend生成的DoubleAnimationUsingKeyFrames代码中遇到了问题,具体是关于Storyboard.TargetName="label"属性,它涉及到我正在进行动画处理的UI的每个部分。我遇到的错误是:
TargetName property cannot be set on a Style Setter
似乎我在这里不能使用TargetName属性,但我该如何指定哪个动画映射到哪个UI组件呢? 我有7个UI元素,我正在移动它们并在我创建的0.5秒动画中更改不透明度,所以我想必须有一种方法来识别它们中的每一个。
我的方法是否不好,还是我做错了什么? 我已经阅读了很多不同的帖子,对该怎么做感到困惑。 似乎有严格的规则规定了什么类型的触发器和用户控件可以做什么,但我不知道其中任何一个。
非常感谢您提供任何帮助或建议。
EventTrigger
类。 - Sheridan