我有一个简单的MVVM应用程序。它包含一个属性,当方法正确执行时,我会将该属性更改为true,否则更改为false。当此属性更改时,我希望在WPF应用程序的状态栏上显示“通过”或“失败”几秒钟,然后让它消失。
所以我读过StackOverflow,并在谷歌上激烈搜索,但无济于事。我想我误解了我需要如何构建故事板。
在我的StatusBar中我添加了一个故事板,我试图在XAML文件的开头<UserControl.Resources>
中触发它。这是否正确?目前我使用的是0/1的伪值,我认为正确的做法是使用我可以制作的BooleanToString转换器,或者可能有更好的方法?
所以我的状态栏包含:
<StatusBar >
<StatusBar.Resources>
<Storyboard x:Key="StatusBar" >
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.Opacity)"
Storyboard.TargetName="statusBarItem">
<EasingDoubleKeyFrame KeyTime="0" Value="0"/>
<EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:3" Value="1"/>
<EasingDoubleKeyFrame KeyTime="0:0:4" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</StatusBar.Resources>
</StatusBar>
并且我正在尝试注册以便在我的UserControl中调用它。资源:
<UserControl.Resources> <DataTemplate.Triggers></DataTemplate.Triggers></UserControl.Resources>
我的结构完全颠倒了吗?它无法编译,并且出现错误:
A value of type 'BeginStoryboard' cannot be added to a collection or dictionary of type 'SetterBaseCollection'.
任何帮助,资源或信息将不胜感激。非常感谢。
1条答案
按热度按时间9njqaruj1#
这里有一个例子。你需要使用一个触发器来启动故事板。
查看模型