在Windows Forms c#中查看WPF的窗体

本文关键字:WPF 窗体 Windows Forms | 更新日期: 2023-09-27 18:17:29

我写的这个方法不工作

UserControl us = new UserControl();
us.Show();

在Windows Forms c#中查看WPF的窗体

控件必须位于窗口

Window  Window = new Window();
// window has a single content
// here it is usercontrol1
// to have many controls, use an intermediary like Grid or Canvas or any Panel derived class
window.Content = usercontrol1;

窗口必须打开。

// modeless (non blocking) opening
window.Show();

// modal (blocking) opening
window.Showdialog();

不能显示UserControl。把你的UserControl改成Window

XAML:

<Window x:Class="WindowsFormsApplication1.MyWindow"
不是

<UserControl x:Class="WindowsFormsApplication1.UserControl1"
在你的代码后面,修改
public partial class UserControl1 : UserControl

public partial class MyWindow: Window

现在可以调用new MyWindow().Show();了。这样做的主要好处是,你不会因为添加一个Windows窗体对话框、一个ElementHost和一个UserControl而使应用程序负担过重。

这样你也可以从调用的Windows窗体类访问UserControl/Window的子控件