更改窗口(WPF)的内容

mil*_*lie 11 c# wpf contentpresenter

我创建了一个简单的WPF应用程序,它有两个Windows.用户在第一个窗口中填写一些信息,然后单击"确定",将其带到第二个窗口.这工作正常,但我试图将两个Windows合并到一个窗口,所以只是内容更改.

在改变窗口内容时设法找到了这个资源管理,这似乎是我所追求的.但是,我搜索了ContentPresenter,但找不到我需要使用它的帮助.例如,如果我使用ContentPresenter,我在哪里放置两个Windows中的现有XAML元素?我猜第一个Window将进入ContentPresenter,但第二个将需要放在需要切换的地方.

任何帮助都会很棒.一个简单的工作示例会更好.

TIA

Dan*_*ose 11

ContentPresenter通常在重新设置现有控件时使用A. 它是放置控件内容的地方.相反,你应该使用a ContentControl,它只是一个具有内容元素的控件.或者,您可以直接设置窗口的内容.

您将两个现有窗口的内容解压缩为两个UserControl.然后创建一个新窗口来托管内容.根据您的业务逻辑,您可以将该窗口的内容(或该窗口的ContentControl,如果您需要其他"主"内容)设置为这两个UserControl中的任何一个.

编辑:

作为一个起点.这不是完整的工作代码,只是为了让您入门.请注意,这是糟糕的架构; 一旦你开始运行,你应该使用MVVM或类似的方法!

<Window>
    <ContentControl Name="ContentHolder" />
</Window>

<UserControl x:Class="MyFirstUserControl" /> <!-- Originally the first window -->

<UserControl x:Class="MySecondUserControl" /> <!-- Originally the second window -->
Run Code Online (Sandbox Code Playgroud)

在Window后面的代码中:

// Somewhere, ex. in constructor
this.ContentHolder.Content = new MyFirstUserControl;

// Somewhere else, ex. in reaction to user interaction
this.ContentHolder.Content = new MySecondUserControl;
Run Code Online (Sandbox Code Playgroud)