使用DevExpress创建区域

时间:2020-07-31 06:15:27

标签: c# wpf prism region

如果我有一个dx:ThemedWindow类型的X文件,其中包含一个AccordionControl。我应该使用哪个区域控件来创建该区域的参考?我尝试了DockPanel,但没有成功。 X文件如下所示。

<dxa:AccordionControl>
   <dxa:AccordionItem Header="Home">
      <dxa:AccordionItem Header="Products"/>
      <dxa:AccordionItem Header="Downloads"/>
   </dxa:AccordionItem>
   <dxa:AccordionItem Header="Get Help">
      <dxa:AccordionItem Header="Support"/>
      <dxa:AccordionItem Header="Documentation"/>
   </dxa:AccordionItem>
   <dxa:AccordionItem Header="Client Center"/>
</dxa:AccordionControl>

Shell.xaml中,我尝试使用RegionManager来获得该区域。

<DockPanel DockPanel.Dock="Bottom" prism:RegionManager.RegionName="{x:Static inf:RegionNames.MenuRegion}" />

你能帮我吗?

2 个答案:

答案 0 :(得分:0)

Devexpress为您的控件提供了一组区域适配器(请在安装目录中查看诸如components \ source \ prismadapters之类的东西)。

如果没有AccordionControl可用的区域适配器,则必须自己编写。

答案 1 :(得分:0)

您的问题对我来说是个模棱两可的问题,我不知道您是否想在窗口中放置一个AccordionControl主机,还是希望AccordionControl成为一个区域本身。

>

在您的窗口中托管手风琴控件

Prism没有内置用于DockPanel的区域适配器,但是您可以在窗口中声明DockPanel并在其中使用ContentControl来承载菜单的区域

<DockPanel LastChildFill="True">
   <ContentControl DockPanel.Dock="Bottom" prism:RegionManager.RegionName="{x:Static inf:RegionNames.MenuRegion}"/>
</DockPanel>

然后,您可以使用区域管理器的RequestNavigate方法navigate对其进行操作,也可以使用RegisterViewWithRegion在应用程序中注册视图以进行视图发现。

手风琴控件作为一个区域

DevExpress开箱即用地为Prism提供了许多区域适配器,但对于AccordionControl没有提供,请参阅documentation以供参考。

您必须自己为该特定控件创建一个合适的区域适配器。区域适配器可能非常复杂,因此,开始学习这些资源。