【发布时间】:2016-11-02 14:59:27
【问题描述】:
我的问题跟在这个问题后面:WPF Module toolbar prism
是否可以将 WPF 工具栏用作棱镜区域?我想做的是这样的:
<DockPanel>
<ToolBarTray DockPanel.Dock="Top">
<ToolBar prism:RegionManager.RegionName="MainNavigationRegion">
</ToolBar>
</ToolBarTray>
</DockPanel>
基本上,我想要的是我的模块能够填充导航区域中的工具栏按钮,但仍保留工具栏的属性(当所有按钮都不适合时折叠)。
【问题讨论】:
-
是的,这是可能的。解决方案已经存在:您必须创建一个自定义区域适配器,正如您发布链接的答案中所描述的那样。
-
“受保护的覆盖 RegionAdapterMappings ConfigureRegionAdapterMappings()”方法是来自自定义类“MyToolbar”的方法?抱歉,也许这是一个非常愚蠢的问题,但我对 Prism 很陌生。然后 MyToolbar 类继承自 ToolBar?而包含 MyToolbar 的 DockPanel 和 ToolBarTray 是定义在 MyToolBar 类中还是在 Shell 中?
-
不,这是您的 PRISM 应用程序引导程序中的一种方法。您不需要编写自己的工具栏,而是需要创建一个
RegionAdapter派生类,该类可以使 PRISM 的区域适应工具栏的项目。 -
@dymanoid:这是我的“ConfigureRegionAdapterMappings()”方法:受保护的覆盖 RegionAdapterMappings ConfigureRegionAdapterMappings(){ RegionAdapterMappings regionAdapterMappings = base.ConfigureRegionAdapterMappings(); regionAdapterMappings.RegisterMapping(typeof(ToolBar), new ToolBarRegionAdapter());返回区域适配器映射;我得到这个错误:'Prism.ToolBarRegionAdapter'不包含一个带 0 个参数的构造函数。但是,我的 ToolBarRegionAdapter 没有构造函数,它从 RegionAdapterBase