如何禁用WinUI 3中TeachingTip的打开和关闭动画?
禁用TeachingTip的开合动画
TeachingTip的开合动画并非继承自ContentControl,而是它自身通过**视觉状态(VisualState)**定义的,默认样式里这些动画被封装在VisualStateGroups节点中,可能你没定位到对应内容。
解决方法如下:
提取TeachingTip的默认样式
在Visual Studio的「文档大纲」中找到目标TeachingTip,右键选择「编辑模板」→「编辑副本」,生成完整的默认样式代码。修改视觉状态动画
在生成的样式里找到VisualStateManager.VisualStateGroups节点,定位到Opening和Closing两个视觉状态,删除其中的<Storyboard>内容,或者将动画的Duration设为0:0:0,示例如下:
<!-- 修改前的Opening状态 --> <VisualState x:Name="Opening"> <Storyboard> <DoubleAnimation Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:0.2"/> <DoubleAnimation Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)" From="0.9" To="1" Duration="0:0:0.2"/> <DoubleAnimation Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)" From="0.9" To="1" Duration="0:0:0.2"/> </Storyboard> </VisualState> <!-- 修改后的Opening状态(无动画) --> <VisualState x:Name="Opening"/>
对Closing状态做同样处理,就能让TeachingTip的显示和隐藏不再有动画效果。
补充说明:TeachingTip确实继承自ContentControl,但ContentControl本身没有弹出/收起这类动画,它的开合动画是控件自身实现的专属视觉状态动画。
内容的提问来源于stack exchange,提问作者Bevara Satyasairam
相关产品推荐
相关产品推荐

