1

我正在创建一个使用 MS 功能区控件的应用程序。功能区有几个选项卡。第一个选项卡标记为“查看”,下一个选项卡标记为“配置”。

在视图下,我显示了我们系统的视图,该视图位于 Window1.xaml 文件中。当我按下配置选项卡时,我希望视图消失并被不同的 xaml 替换,最好使用与 Window1.xaml 中的不同的 xaml。功能区控件不会消失,而是用作不同屏幕的导航器。目前,当我按下“配置”选项卡时,我会折叠包含“查看”屏幕的所有控件(功能区除外)的网格,并使包含“配置”屏幕的控件的网格可见。

当我将配置屏幕的 xaml 添加到 Window1.xaml 文件中时,这是我目前所做的,它当然会与视图屏幕一起显示在设计器中。为其他选项卡显示的屏幕添加 xaml 使这不切实际。

我想知道一个很好的方法来做到这一点。我想为每个“选项卡”屏幕创建 xaml 文件,并在按下选项卡时激活它们,就好像每个选项卡都是它自己的应用程序,可以来来去去。

我还不太了解页面导航(我在 WPF 中只有几个月大),但我认为这可能是一种方法。不确定功能区在这种情况下是否表现得很好。

我会很感激任何方向。谢谢你。

4

4 回答 4

2

这可以通过使用CompositeWPF 的RegionManager 通过将视图添加到区域并在应该显示另一个视图时停用它们来完美地实现。至少那是我在一个非常相似的场景中所做的并且效果很好。正如您所说,您希望它们表现得“就好像每个都是自己的应用程序一样”,compositewpf 可以免费提供模块化。

于 2009-04-08T22:54:12.180 回答
0

您应该将 View 和 Configure 选项卡的内容创建到它们自己的 UserControls 中。这仍然允许您以编程方式将它们交换进出,但会给您带来能够在您的设计器中单独编辑每一个的优势。

如果您使用的是 Expression Blend,您可以右键单击交互窗格中的任何子容器控件,然后给出“制作控件”选项。如果您在“配置”和“查看”选项卡上执行此操作,大部分工作将为您完成。

于 2009-04-08T22:48:51.787 回答
0

这通常被称为“剥皮”您的应用程序,这里有一篇关于剥皮只是应用程序的一部分的文章。如果你在谷歌上搜索皮肤和 WPF,你会得到很多关于如何做到这一点的好方法的示例代码。

于 2009-04-08T22:52:02.763 回答
0

我会使用 Frame 元素。它允许您使用源属性从其他页面加载 XAML,如下所示:

<Frame Source="Configure.xaml"/> 

这样,当您按下配置按钮时,您可以设置一个事件,该事件创建一个带有框架元素的新 TabItem 作为内容,它将加载您想要查看的 XAML。

于 2009-04-08T23:16:35.730 回答