C# 带棱柱的WPF工具栏

C# 带棱柱的WPF工具栏,c#,wpf,mvvm,prism,C#,Wpf,Mvvm,Prism,我的问题如下: 是否可以将WPF工具栏用作棱镜区域?我想做的是这样的: <DockPanel> <ToolBarTray DockPanel.Dock="Top"> <ToolBar prism:RegionManager.RegionName="MainNavigationRegion"> </ToolBar> </ToolBarTray> </DockPanel>

我的问题如下:

是否可以将WPF工具栏用作棱镜区域?我想做的是这样的:

<DockPanel>
    <ToolBarTray DockPanel.Dock="Top">
        <ToolBar prism:RegionManager.RegionName="MainNavigationRegion">

        </ToolBar>
    </ToolBarTray>
</DockPanel>


基本上,我想要的是我的模块能够填充导航区域中的工具栏按钮,但仍然保留工具栏的属性(当所有按钮都不适合时折叠)。

基本上,在PRISM中,每个区域都是单独的用户控制/项目,意味着模块即插即用,您可以做一件事:在一个用户控件中创建工具栏或功能区面板,并在bootstraper中注册该视图,然后像往常一样在Shell.xaml中绑定相应的视图。

基本上在PRISM中,每个区域都是单独的用户控件/项目,意味着模块即插即用,您可以做一件事:在一个用户控件中创建工具栏或功能区面板,并在bootstraper中注册该视图,然后像往常一样在Shell.xaml中绑定相应的视图。

是的,这是可能的。解决方案已经存在:您必须创建一个自定义区域适配器,正如您发布链接的答案中所述。“受保护的覆盖RegionaDapterAppings ConfigureRegionaDapterAppings()”方法是来自自定义类“MyToolbar”的方法?对不起,也许这是一个很愚蠢的问题,但我对Prism很陌生。然后MyToolbar类从ToolBar继承?还有DockPanel和包含MyToolbar的ToolBarTray,它们是在MyToolbar类中定义的还是在Shell中定义的?不,这是PRISM应用程序引导程序中的一个方法。您不需要编写自己的工具栏,而是需要创建一个
RegionaAdapter
派生的类,该类可以使棱柱体的区域适应工具栏的项目。@dymanoid:这是我的“ConfigureRegionaAdapterMappings()”方法:受保护的覆盖RegionaAdapterMappings ConfigureRegionAdapterMappings(){RegionAdapterMappings RegionAdapterMappings=base.ConfigureRegionAdapterMappings();RegionAdapterMappings.RegisterMapping(typeof(ToolBar),new ToolbarRegionaAdapter());返回RegionAdapterMappings;}我得到了这个错误:“Prism.ToolbarRegionaAdapter”不包含接受0个参数的构造函数。但是,我的ToolbarRegionaAdapter没有构造函数,它来自RegionaAdapterBaseYes,这是可能的。解决方案已经存在:您必须创建一个自定义区域适配器,正如您发布的link to.“protected override RegionaDapterAppings ConfigureRegionaDapterAppings()”方法是自定义类“MyToolbar”中的方法?对不起,也许这是一个非常愚蠢的问题,但我对Prism非常陌生。然后MyToolbar类继承自ToolBar?DockPanel和包含MyToolbar的ToolBar托盘,它们是在MyToolbar类中定义的还是在Shell中定义的?不,这是Prism应用程序引导程序中的一个方法。您不需要编写自己的工具栏,但r您需要创建一个
RegionaAdapter
派生的类,该类可以使棱柱体的区域适应工具栏的项目。@dymanoid:这是我的“ConfigureRegionaDapterAppings()”方法:受保护的覆盖RegionaDapterAppings ConfigureRegionaDapterAppings(){RegionAdapterMappings RegionAdapterMappings=base.ConfigureRegionAdapterMappings();RegionAdapterMappings.RegisterMapping(typeof(ToolBar),new ToolbarRegionaAdapter());返回RegionAdapterMappings;}我得到这个错误:“Prism.ToolbarRegionaAdapter”不包含接受0个参数的构造函数。但是,我的ToolbarRegionaAdapter没有构造函数,它来自RegionaAdapterBase