我正在尝试找到需要调整的位,以便在WPF中停止ContextMenus出现/消失时的动画效果。
据我了解,WPF创建一个Popup来托管ContextMenu。 Popup查看其PopupAnimation属性并决定如何进行动画。我想做的是始终将其设置为“无”。
我尝试使用TargetType为Popup的全局未命名样式来设置PopupAnimation为None,但这并不起作用。如果我在System.Windows.Controls.Primitives.Popup.SetupAnimations中断点,我可以看到动画类型仍然设置为Fade。我猜想它还没有机会应用样式。
我尝试钩取ContextMenuOpening,但在其中没有找到可以访问Popup的方法。
我还能尝试什么?
请注意,这是我在这里提出的另一个问题的第二部分。那里给出的建议对于菜单和我们拥有的所有其他动画效果都非常有效,但唯一的例外是ContextMenus。它们基于代码中的属性进行动画处理,而不是模板。我使用此处给出的建议将ContextMenu模板拿出来进行了验证。