我想在可见性可以改变的控件上添加视觉效果(例如淡入,淡出).
我不知道从哪里开始这样做.我已经阅读了一些关于visualstatemanager和VisualTransform的内容,但我仍然不知道它是否可行以及该怎么做.你能帮助我吗 ?
谢谢
解决方法
你想要什么是可能的.
您需要一个定义ShowState和HideState的visualstatemanager.这些又定义了一个控制可见性的故事板.
然后你打电话
visualstatemanager.GoToState(uiElement,"ShowState",true);
在您的元素上发送带有动画的“ShowState”.用“HideState”替换状态名称将隐藏元素.
我们用于visualstatemanager的XAML如下所示.它也可以激活不透明度,因此可以淡入/淡出.
<visualstatemanager.VisualStateGroups> <VisualStateGroup x:Name="VisualStates"> <VisualState x:Name="ShowState"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.Opacity)"> <EasingDoubleKeyFrame KeyTime="00:00:01" Value="1" /> </DoubleAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.Visibility)"> <discreteObjectKeyFrame KeyTime="00:00:00"> <discreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </discreteObjectKeyFrame.Value> </discreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:Name="HideState"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.Opacity)"> <EasingDoubleKeyFrame KeyTime="00:00:01" Value="0" /> </DoubleAnimationUsingKeyFrames> <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.Visibility)"> <discreteObjectKeyFrame KeyTime="00:00:01"> <discreteObjectKeyFrame.Value> <Visibility>Collapsed</Visibility> </discreteObjectKeyFrame.Value> </discreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </visualstatemanager.VisualStateGroups>
注意这些上的KeyTime值可能需要针对您的应用进行调整.再看一遍,我看到“HideState”时间都是0,这可能无法给你想要的效果. AnthonyWJones可能在我们的应用程序中发现错误!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。