【发布时间】:2018-02-15 14:00:33
【问题描述】:
对于我正在处理的应用程序,我需要一个动画。 问题是,动画在工具提示中。
所以我有一个按钮,每当我移过按钮时,工具提示就会出现。工具提示显示一个简短的信息文本(文本块),大约两秒钟后,他将展开并显示一个图像。
由于我是一名仅使用 XAML 的开发人员,这意味着我对 C# 一无所知,因此我不知道如何绑定到视图模型,因此我正在寻找一种使用触发器和情节提要的方法。
我已经通过一个事件触发器实现了这个效果,它对加载的路由事件做出反应。问题是,当第一次加载工具提示时,这“只”工作一次。
这是我的代码:
<Button Width="100" Height="100">
<Button.ToolTip>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Here is some text!"></TextBlock>
<Image Grid.Row="1" Visibility="Collapsed" Source="MyPicture.png">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames
Storyboard.TargetProperty="Visibility"
Duration="0"
BeginTime="0:0:2">
<DiscreteObjectKeyFrame Value="{x:Static Visibility.Visible}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Grid>
</Button.ToolTip>
</Button>
有比“加载”更好的路由事件还是我必须自己制作路由事件?我可以将事件链接到按钮,例如“当按钮 IsMouseOver 为真时,对图像执行此操作”? 还是有更好的方法? 不过,也欢迎有关 C# 方式的解决方案。
感谢您的建议,
格瑞特
【问题讨论】:
标签: wpf xaml animation triggers tooltip