问题 在VS 2010中的Winforms项目中添加WPF窗口


在VS 2010中选择“添加新项目”时,是否可以从winforms项目访问所有WPF项目?我默认只能访问WPF userControl。

我想在winforms项目中添加一个WPF窗口。不只是用户控件。

编辑: 简短的回答:这似乎不可能 本身,但可以手动添加WPF资源和必要的引用。


12802
2017-12-16 12:20


起源

检查一下 stackoverflow.com/questions/450377/... - Atomosk


答案:


显然你不能直接,但你可以做的是添加一个新的用户控件,然后修改代码使其成为一个窗口。只需创建一个新的WPF项目,添加一个窗口并查看需要更改的内容以将用户控件转换为窗口。


6
2017-12-16 12:24



我想这样做,但我预计它不会非常简单,有点拉毛,所以我甚至没有尝试:-)我会试一试 - Mehdi LAMRANI
那么第一步就是用XAML中的Window标签替换UserControl标签,并使类扩展Window。然后看看还有什么。 - Tudor
这可能是最好的解决方案,并在此逐步解释: i-think22.net/archives/2008/08/05/... - surfen


在我看来,“最干净”的选择是使用这个方案:

  1. 创建一个WPF项目(添加您需要的任何WPF窗口)。让我们来称呼它 “WPFProject”
  2. 在同一个解决方案中创建一个WinForms项目(添加任何表单你 需要)。让我们称之为“MainProject”。
  3. 在MainProject中添加对以下内容的引用:

    • WPFProject
    • PresentationCore
    • PresentationFramework

多数,现在您可以从MainProject打开您的WPF窗口(例如,通过按下按钮):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim mywpfform = New WPFProject.MainWindow //MainWindow is the default name of your first WPF window. Obviously you can open any other
        mywpfform .Show()
End Sub

4
2017-09-14 11:35



不理解downvote,它对我有用... - Carlos Borau
不幸的是,在没有解释的情况下进行投票是SOF可能发生的最粗鲁的事情 - Mehdi LAMRANI


有可能这样做,我必须使用这种技术几次没有任何问题:

如何以编程方式在WinForm应用程序中创建WPF窗口


2
2017-12-16 12:29



谢谢,这也很有帮助。不完全是我的预期,但它提供了有价值的信息。 - Mehdi LAMRANI