簡體   English   中英

從 WinForms 打開 WPF 窗口並使用 WPF 應用程序鏈接表單應用程序

[英]Open a WPF Window from WinForms & link form app with WPF app

我正在使用 Visual Studio 2012 & 我正在使用名為 Form1 的 Win Form 應用程序 & 添加一個名為“wpfWin”的新項目 wpf Window。 單擊后,我想通過 Form1 中的按鈕打開 wpfWin,它會打開 - 分離的窗口 -。

我已經嘗試過weblogs.asp,但我還沒有找到“WPF 自定義控件庫”,一旦我跳過它,就會出現錯誤。 有沒有別的辦法?!

另外,如何鏈接 WinForm 中的兩個應用程序和另一個 Wpf 中的應用程序?!

在 WindowsForm APP 中打開 WPF 窗口,所以您對上述鏈接的教程和問題有疑問? “WPF 自定義控件庫”是您要在 Win-Forms 應用程序中使用的 WPF 窗口。

只是一個簡短的解釋,因為它通過問題和教程解釋了幾次。 您將要打開當前正在處理的 win-forms 項目。 然后您將需要轉到解決方案資源管理器並右鍵單擊解決方案,而不是項目,轉到“添加”並選擇“新建項目”。

在添加新項目中,轉到 Visual C#,然后轉到左側樹中的 Windows。 它們應該位於已安裝的子菜單中。 在主要部分,您應該看到“WPF 自定義控件庫”,單擊它,然后將其命名為您想要的名稱,然后單擊確定。

在項目中添加一個 Window(WPF) 控件,這個窗口就是你要打開的 WPF 窗口。

然后從 WinForm 中,像這樣打開它:

var wpfwindow = new WPFWindow.Window1();
ElementHost.EnableModelessKeyboardInterop(wpfwindow);
wpfwindow.Show();

但是請確保您有以下 using 語句:

using System; //Given 
using System.Windows.Forms; //Given
using System.Windows.Forms.Integration; //Not so Given.

您還需要添加一些引用以使其正常工作,這是您需要添加到 win-forms 的所有列表:

 PresentationCore
 PresentationFramework
 WindowsFormsIntegration
 WindowsBase
 System.Xaml
 YourWpfControlProjectName

您應該使用 VS 中的引用選擇器將這些添加到您的 Win-forms 項目中,方法是右鍵單擊解決方案資源管理器中的引用文件夾並添加新引用。 所有引用都位於框架選項卡中,沒有解決方案選項卡中的 WPF 控件。

嘗試在您的項目中引用 windowbase.dll。 還要確保“復制本地”屬性設置為 true。

檢查項目的 .NET Framework 版本也非常重要。 您引用的 WPF 應用程序必須具有與根項目相同或更低的版本。 花了我很多時間!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM