从Form移植到WPF

时间:2011-06-22 12:12:28

标签: c# wpf winforms

我在表单中有一段有效的代码:

public class Form1 : System.Windows.Forms.Form
{
    private void Form1_Load(object sender, System.EventArgs e)
    {
       port.Parent = this;
    }
}

现在我改为WPF:

public partial class MainWindow : RibbonWindow
{
    private void Btn_Click(object sender, RoutedEventArgs e)
    {
       port.Parent = this;
    }
}

然后它给了我: “无法将类型'System.Windows.DependencyObject'隐式转换为'System.Windows.Forms.Control'”

有什么问题?

2 个答案:

答案 0 :(得分:3)

您在一个应用程序中使用WPF和Windows窗体。您不能将Windows窗体窗口用作WPF窗口的父窗口。您应该使用WinForms窗口将Windows转换为WPF,或者在Windows窗体ElementHost控件中托管WPF元素。

答案 1 :(得分:1)

因为所有wpf控件都是DependencyObject的子类型,所以不能给父提供非DependencyObject实例,这就是问题所在。