我正在构建一个棱镜应用程序,并使用MahApps的hamburgermenu设置了外壳。在该Hamburgermenu的内容中,我希望有一个区域。
但是当我尝试使用“ Hamburgermenu.Content”中的ContentControl制作区域时,不会添加该区域。 但是,如果我尝试使用Hamburgermenu控件以外的ContentControl来制作区域,则效果很好。
<route id="bar">
<from uri="mqtt"/>
<to uri="TranslateMQTT2MyModel"/>
<to uri="seda:processAndReply"/>
</route>
<route id="out">
<from uri="seda:processAndReply" />
<to uri="ProcessData"/>
<to uri="TranslateMyModel2MQTT"/>
<to uri="mqtt"/>
</route>
由于在汉堡菜单中未添加区域,因此导航无法正常工作。有人知道我做错了什么吗?
答案 0 :(得分:1)
附加属性(RegionManager.RegionName
)仅适用于立即创建的控件。由于区域管理器已完成查找区域的操作,因此不会检测到延迟创建的控件。
您需要在(构造函数)后面的菜单代码中手动添加区域,如下所示:
RegionManager.SetRegionName( theNameOfTheContentControlInsideTheMenu, WellKnownRegionNames.MenuRegion );
RegionManager.SetRegionManager( theNameOfTheContentControlInsideTheMenu, theRegionManager );
您必须为托管该区域的内容控件分配一个名称,并以某种方式获取区域管理器(ServiceLocator.Current.GetInstance<IRegionManager>()
)。