winform 页面的加载wpf的page页面,确保关闭还能再次打开
时间: 2024-03-17 22:44:17 浏览: 31
在 WinForm 页面中加载 WPF 的 Page 页面,可以通过以下步骤确保关闭后再次打开:
1. 在 WinForm 中创建一个 `ElementHost` 控件,用于承载 WPF 的 Page 页面。
2. 在 WinForm 的 Form_Load 事件中,创建一个 WPF 的 Page 实例,将其赋值给 `ElementHost` 的 Child 属性,以便将 WPF 页面嵌入到 WinForm 页面中。
3. 在 WinForm 的 Form_Closing 事件中,将 `ElementHost` 的 Child 属性设置为 null,释放 WPF 页面资源。
4. 在 WinForm 的 Form_Closed 事件中,重新创建 WPF 的 Page 实例,并将其赋值给 `ElementHost` 的 Child 属性,以便能够再次打开 WPF 页面。
以下是示例代码:
```csharp
public partial class MainForm : Form
{
private Page wpfPage;
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
wpfPage = new WpfPage();
elementHost1.Child = wpfPage;
}
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
elementHost1.Child = null;
}
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
{
wpfPage = new WpfPage();
elementHost1.Child = wpfPage;
}
}
```
注意:在 WPF 页面中要确保使用的是无状态控件,否则可能会导致重复打开页面时出现状态异常。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)