我可以在TabItem控件中放置区域吗?

时间:2019-01-11 13:22:20

标签: wpf prism

我有以下代码来显示视图。

<TabControl>
     <TabItem x:name=View1 ...>
           <TabItem.Header>
               <Grid>
                  <local:View1 />
               </Grid>
           </TabItem.Header>
     </TabItem>
     <TabItem x:name=View2 ...>
            <TabItem.Header>
               <Grid>
                  <local:View2 />
               </Grid>
           </TabItem.Header>
     </TabItem>
     <TabItem x:name=View3 ...>
         <TabItem.Header>
               <Grid>
                  <local:View3 />
               </Grid>
           </TabItem.Header>
     </TabItem>
</TabControl>

现在出于某些导航目的,我想从其他模块导航到视图。所以我想我必须将区域添加到视图中。

那么我可以将区域添加到TabItem控件中吗?如

<TabControl>
     <TabItem x:name=View1 prism:RegionManager.RegionName="Region1".../>
     <TabItem x:name=View2 prism:RegionManager.RegionName="Region2".../>
     <TabItem x:name=View3 prism:RegionManager.RegionName="Region3".../>
</TabControl>

还是我必须将TabItem替换为ContentControl?问题是代码在某种程度上在生产中。如果我更改它,不确定是否会有负面影响?

1 个答案:

答案 0 :(得分:0)

您可以在每个ContentControl中放置一个TabItem并在其中托管区域。

通过谷歌搜索发现的“正常” TabControlRegionAdapter(例如this one)使您可以将区域托管在TabControl中,以便为您创建的每个视图都创建一个TabItem添加到该区域-似乎不是您想要的

<TabControl>
     <TabItem x:name=View1>
         <ContentControl prism:RegionManager.RegionName="Region1"/>
     </TabItem>
     <TabItem x:name=View2>
         <ContentControl prism:RegionManager.RegionName="Region2"/>
     </TabItem>
     <TabItem x:name=View3>
         <ContentControl prism:RegionManager.RegionName="Region3"/>
     </TabItem>
</TabControl>