首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >棱镜嵌套区域

棱镜嵌套区域
EN

Stack Overflow用户
提问于 2013-09-18 15:30:12
回答 2查看 3K关注 0票数 2

我已经在我的主窗口中定义了一些区域,我已经成功地在每个区域填充了一个视图。现在,我需要将所有区域最小化,作为一个“窗口”,以便能够最大限度地扩大另一个“窗口”。

我在想,我应该创建一个地区作为家长,让所有这些地区的孩子来到这个地区,以便能够把他们作为一个“窗口”来控制。这样做对吗?我该怎么做呢?

代码语言:javascript
复制
<Window>
    <DockPanel LastChildFill="True">   
        <telerik:RadDocking x:Name="DockingControl" prismrgn:RegionManager.RegionName="{x:Static Common:RegionNames.MainRegion}">
            <telerik:RadSplitContainer InitialPosition="DockedLeft">
                <telerik:RadPaneGroup AutomationProperties.AutomationId="{x:Static Common:RegionNames.LeftAutoHide}" prismrgn:RegionManager.RegionName="{x:Static Common:RegionNames.LeftAutoHide}"/>
                <telerik:RadPaneGroup AutomationProperties.AutomationId="{x:Static Common:RegionNames.LeftRegion}" prismrgn:RegionManager.RegionName="{x:Static Common:RegionNames.LeftRegion}"/>
            </telerik:RadSplitContainer>

            <telerik:RadSplitContainer InitialPosition="DockedRight" Orientation="Vertical">
                <telerik:RadPaneGroup prismrgn:RegionManager.RegionName="{x:Static Common:RegionNames.TopRightRegion}"/>
                <telerik:RadPaneGroup prismrgn:RegionManager.RegionName="{x:Static Common:RegionNames.BottomRightRegion}"/>
            </telerik:RadSplitContainer>
        </telerik:RadDocking>
    </DockPanel>
</Window>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-20 13:12:43

由于没有人接听,我最后使用地区经理关闭了所有区域。

代码语言:javascript
复制
regionManager.Regions[regionname].Remove(view);

因此整个“窗户”。然后,我使用区域经理打开了新的“窗口”。

代码语言:javascript
复制
regionManager.RequestNavigate(...);
票数 0
EN

Stack Overflow用户

发布于 2013-10-03 17:10:31

如果我正确理解,您将希望Navigate访问在MainRegion中注册的视图,以便使第一个View被停用,接下来的一个被激活。

因此,您的第一种方法是正确的,尽管在Shell中定义的窗口将只声明主区域,然后要导航到的视图将在其中注册。

代码语言:javascript
复制
this.RegionManager.RegisterViewWithRegion("MainRegion", typeof(MainView));

Shell视图如下所示:

代码语言:javascript
复制
<Window>
    <DockPanel>
        <TabControl Name="MainRegion" cal:RegionManager.RegionName="MainRegion"/>
    </DockPanel>
</Window>

您提到的主视图中的其他区域将在包含它们的适当的MainRegion's注册视图上定义。但是,如果您计划浏览同一视图的不同实例,您应该知道为每个导航视图创建范围范围的区域管理器,以便只将subRegions隔离到该视图中。

您可以为指定的视图创建范围区域管理器,如下所示,然后注册属于每个子区域的视图:

代码语言:javascript
复制
IRegionManager scopedRegionManager = mainRegion.Add(objectView, null, 
                            true);
scopedRegionManager.Regions["TopRightRegion"].Add(subView);

您可以在下面的棱镜导航指南章节中找到有关视图导航的更多信息:

  • 组成用户界面:- 创建一个区域的多个实例
  • 导航

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18876439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档