6

Window是否可以在TabControl's中打开另一个TabItem

我想这样做的原因是,如果我的 5 TabItems 中有 5 个TabControl,我正在编写所有这些TabItems 的一个 Window 文件及其相关操作将变得非常大。TabItem因此,如果可以为每个文件提供自己的文件,那就太好了Window

或者你如何解决Window控制文件TabControl太大的问题?

4

5 回答 5

8
<Window ...
     xmlns:local="clr-namespace:MyNamespace"
     >
     <TabControl>
          <TabItem Header="FirstTab">
               <local:MyFirstTabUserControl/>  
          </TabItem>
          <TabItem Header="SecondTab">
               <local:MySecondTabUserControl/>  
          </TabItem>
          <TabItem Header="ThirdTab">
               <local:MyThirdTabUserControl/>  
          </TabItem>
     </TabControl>
</Window>

您的每个 TabUserControl 实际上都是简单的 UserControl,因为 TabItem 可以将任何控件作为其自己的子控件。

于 2009-12-18T07:54:44.860 回答
5

你有几个选择:

  • 将一个或多个资源字典添加到您的应用程序,其中包含资源以及您在选项卡中托管的各种视图的模板和样式。如果您只需要保持视觉树的分离,这种方法效果很好。
  • 为每个视图创建用户控件(使用自己的 XAML 和类文件),并为选项卡中的每个不同视图使用一个实例。这种方法允许您将特定的业务逻辑和相应的可视化树封装在一起。
  • 从代码生成一些 UI。这个没有任何优势,除了它会让你的 XAML 更小。如果您的 .cs 文件变得太大,您总是可以将它们拆分为多个代码文件并使用部分类。(为了完整起见,只需要加入这个:-))
于 2009-12-18T07:27:23.573 回答
4

您还可以将 TabItem 内容设置为等于您的窗口内容

例如:[WindowType 是你的窗口]

WindowsType oWindow = new WindowType();
TabItem oTab = new TabItem();
oTab.Content = oWindow.Content;
于 2013-10-26T14:34:25.657 回答
2

为每个 TabItem 制作一个 UserControl。

于 2009-12-18T07:20:52.740 回答
0

您可以使用前面提到的 UserControl。

但是您也可以使用 Page 控件。每个“窗口”都是一个页面,并且选项卡中会有一个 NavigationControl。我以前用过这种方法,效果很好。我更喜欢 UserControl 路线,但两者都是有效的。

于 2013-02-16T20:38:16.253 回答