以编程方式添加 MahApps.Metro 上下文菜单
Posted
技术标签:
【中文标题】以编程方式添加 MahApps.Metro 上下文菜单【英文标题】:Add MahApps.Metro Context Menu programmatically 【发布时间】:2016-10-16 21:45:17 【问题描述】:由于我正在将动态内容加载到 StackPanel
中,因此我想在每个对象上添加一个 ContextMenu
。
现在我正在使用 System.Windows.Controls.ContextMenu
进行操作,并且它正在工作。
不幸的是,菜单看起来像旧的窗口形式,而不像 MahApps 的漂亮菜单。
在 Internet 页面上,我可以找到如何在 xaml 中添加菜单的文档,而不是如何通过代码创建菜单。
你有什么想法吗?
感谢您的帮助:)
【问题讨论】:
【参考方案1】:在MahApps.Metro
中查找我发现ContextMenu的Style
有Key MetroContextMenu
。
因此,您只需在 CodeBehind 中创建您的普通 ContextMenu。您可以将以下Style
添加到您的App.xaml
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- MahApps.Metro resource dictionaries. Make sure that all file names are Case Sensitive! -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.ContextMenu.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<!-- Accent and AppTheme setting -->
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Green.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<!-- Apply MetroStyle for ContextMenu to ContextMenus in Application scope -->
<Style TargetType="ContextMenu" BasedOn="StaticResource MetroContextMenu" />
</Application.Resources>
这只是您必须向您的ContextMenu
申请。 MahApps没有提供特殊的ContextMenu
控件(只有Style
!)。
【讨论】:
以上是关于以编程方式添加 MahApps.Metro 上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章