2012-05-01 146 views
3

我一直無法完成這項工作,因爲我認爲這是Visual Studio中的一個小故障,所以我非常感謝有人可以嘗試這種情況並分享什麼發生。C++從另一個程序集中處理WPF窗口並處理事件

我有安裝在一溶液2個項目: - C++應用程序這一直CLI啓用(.EXE) - 其具有的.xaml形式內具有匹配的.cs窗口類一個C#/ WPF類庫( .dll)

我想在我的C++應用程序中產生WPF窗口,因此我導入其引用並創建窗口的新實例並在新的應用程序上下文下運行。這很好。

我現在想從這個窗口中創建類並處理從C#窗口中的保護函數繼承的不同事件,因此在C++程序集中創建一個公共ref類,其子類是.xaml驅動窗口的.cs類。這編譯好。

即:

public ref class myCPPWindow : myWPFWindow { ... }; 

我然後改變我產卵到位於在C++組件,而不是位於C#組件中的基類的父類的窗口。現在,在加載.xaml窗口時,我在基類C#類的InitializeComponent()部分發生了一個錯誤,我需要說明它無法從C#程序集加載.xaml窗口源,即使基類工作正常。任何人都可以給這個解釋/修復?

+0

仍在尋找答案/建議 – kvanberendonck

+0

查看myWPFWindow.xaml.cs並檢查加載了哪些資源以及它是如何完成的。也許這可以幫助你。 –

+0

它使用InitializeComponent()正常加載。沒有什麼特別的。我試着將InitializeComponent移動到子對象而不是父對象,並且在使用InitializeComponent()內的相對URI定位表單失敗時沒有任何區別。 – kvanberendonck

回答

1

它看起來像WPF中常見的[庫;用戶控件] - [應用程序;派生控件]問題 - 我重現了即使沒有C++。沒有深入解釋,一般的解決方法是聚合「基本」類或重新脫氣基類爲模板控制,而不是用戶控制(例如沒有.xaml文件)。如果我理解正確,您的問題與The component does not have a resource identified by the uri問題相同。

+0

不知道如何,但如果有可能表明問題之間的聯繫,這將是有益的。 – mikalai