gpt4 book ai didi

c# - 更改窗口内容 (WPF)

转载 作者:可可西里 更新时间:2023-11-01 08:42:41 26 4
gpt4 key购买 nike

我创建了一个简单的 WPF 应用程序,它有两个 Windows。用户在第一个窗口中填写一些信息,然后单击“确定”,这会将他们带到第二个窗口。这工作正常,但我正在尝试将两个 Windows 合并到一个窗口中,所以只是内容发生了变化。

我设法找到了这个 Resource management when changing window content这似乎是我所追求的。但是,我已经搜索了 ContentPresenter,但找不到太多关于我需要如何使用它的帮助。例如,如果我使用 ContentPresenter,我应该将两个 Windows 中的现有 XAML 元素放在哪里?我猜第一个 Window 将进入 ContentPresenter,但第二个 Window 需要放在某个地方,以便在需要切换时使用。

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

TIA

最佳答案

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

您将两个现有窗口的内容提取到两个用户控件中。然后创建一个新窗口来承载内容。根据您的业务逻辑,您将该窗口的内容(如果您想要额外的“主”内容,则设置该窗口的 ContentControl)到这两个 UserControl 中的任何一个。

编辑:

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

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

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

<UserControl x:Class="MySecondUserControl" /> <!-- Originally the second window -->

在窗口的代码后面:

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

// Somewhere else, ex. in reaction to user interaction
this.ContentHolder.Content = new MySecondUserControl;

关于c# - 更改窗口内容 (WPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5909441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com