菜单作为棱镜区域 +主题问题
我使用菜单控件作为区域。它工作正常,但是当我向应用程序添加主题(向我的 App.xaml 添加资源字典)时,正常菜单具有该主题,但我区域内的视图(菜单项)没有该主题。
其背后的原因可能是什么?有人有解决方法的想法吗?
亚历克斯.
I am using a Menu control as a region. It works fine, however when I add a theme to my application (Added a resource-dictionary to my App.xaml) normal menus have the theme, but the views inside my region (which are menu-items) don't have this theme.
What might be the reason behind it? Anybody has an idea for a work-around?
Alex.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
问题在于,当在 MenuItem 内使用该区域时,该区域的 ItemsControl 会设置样式,但其子项不会设置样式。我通过使用来自各种来源的动态菜单找到了解决方法:
WPF 示例系列 – 数据绑定 HierarchicalDataTemplate 菜单示例
使用 HierarchicalDataTemplate 构建数据绑定 WPF 菜单
我在基础结构项目中创建了 IMenuService 和 MenuItemViewModel,在 Shell 项目中实现 IMenuService,然后使用IMenuService 在我的模块中添加菜单。
Shell 项目中的 MenuService:
在 Shell.xaml 中
在 ShellViewModel 中:
从模块添加菜单:
这是上面 Karl 站点中的 SeparatorStyleSelector:
The problem is that the ItemsControl of the region gets styled but its children do not when the region is used inside a MenuItem. I found a workaround by using dynamic menus from various sources:
WPF Sample Series – Databound HierarchicalDataTemplate Menu Sample
Building a Databound WPF Menu Using a HierarchicalDataTemplate
I created an IMenuService and MenuItemViewModel in my Infrastructure project, implement the IMenuService in my Shell project, and use IMenuService in my module to add a menu.
MenuService in Shell project:
In Shell.xaml
In the ShellViewModel:
Adding a menu from the module:
Here is the SeparatorStyleSelector from Karl's site above:
这可能是 Prism 菜单区域适配器中的错误。我建议在 CodePlex 上报告该问题。
It could be a bug in the Prism Menu region adapter. I'd suggest reporting the issue on CodePlex.
我只会迭代子控件并明确地将主题分配给每个子控件。
I would just iterate the children controls and assign the theme to each of them explicitly.