gpt4 book ai didi

wpf - 如何禁用 WPF ContextMenu 动画?

转载 作者:行者123 更新时间:2023-12-04 01:25:30 28 4
gpt4 key购买 nike

我正在尝试寻找需要调整的部分,以使 WPF 中的 ContextMenus 在它们出现/消失时停止动画。

据我所知,WPF 创建了一个 Popup 来托管 ContextMenu。 Popup 查看其 PopupAnimation 属性并决定如何设置动画。我想要做的是始终将其设置为“无”。

我尝试使用将 PopupAnimation 设置为 None 的 Popup 的 TargetType 设置全局未命名样式,但这不起作用。如果我打破 System.Windows.Controls.Primitives.Popup.SetupAnimations 我可以看到动画类型仍然设置为淡入淡出。我猜它还没有机会应用样式。

我试过 Hook ContextMenuOpening 但无法访问我可以找到的弹出窗口。

我还能尝试什么?

请注意,这是我问的另一个问题的第二部分 here .那里的建议对菜单和我们拥有的所有其他动画效果很好,但唯一的异常(exception)是 ContextMenus。它们基于代码中的属性而不是模板进行动画处理。我通过使用给出的建议拉出 ContextMenu 模板来验证这一点 here .

最佳答案

我也一直在为此苦苦挣扎。我发现解决方案是“覆盖”system parameter that control popup animation .

通过像这样定义资源(可能在您的 Themes\Generic.xaml 中)来做到这一点:

<PopupAnimation x:Key="{x:Static SystemParameters.MenuPopupAnimationKey}">None</PopupAnimation>

关于wpf - 如何禁用 WPF ContextMenu 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3160467/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com