Мне не удалось выполнить эту работу из-за того, что я считаю ошибкой в Visual Studio, поэтому я был бы очень признателен, если бы кто-то мог попробовать эту ситуацию и поделиться тем, что случается.C++ Parenting WPF-окно из другой сборки и обработки событий
Я имею установку в растворе 2 проекта: - приложение C++, который был включен CLI (.exe) - это C#/библиотека классов WPF, который имеет .xaml форму внутри с соответствующим .cs класса окна (.dll)
Я хочу создать окно WPF внутри моего приложения на C++, поэтому я импортирую его ссылку и создаю новый экземпляр окна и запускаю его в новом контексте приложения. То работает отлично.
Теперь я хочу сделать классы из этого окна и обработать различные события, унаследованные от защищенных функций в окне C#, поэтому на сборке C++ сделать общедоступным класс ref, чей дочерний элемент является классом .cs окна с окном .xaml , Это прекрасно компилируется.
т.е.
public ref class myCPPWindow : myWPFWindow { ... };
Я тогда изменить окно я нерест на родительский класс, который находится в C++ сборка, а не базового класса, расположенный в C# сборки. Теперь я получаю сообщение об ошибке в части InitializeComponent() базового класса C# при загрузке окна .xaml, которое мне нужно сказать, что он не может загрузить источник окна .xaml из сборки C#, даже если базовый класс работает. Может ли кто-нибудь дать объяснение/исправить это?
Все еще ищете ответ/совет – kvanberendonck
Посмотрите на myWPFWindow.xaml.cs и проверьте, какой ресурс загружен и как это делается. Возможно, это поможет вам. –
Загружается с использованием InitializeComponent(). Ничего особенного не делается. Я попытался переместить InitializeComponent в дочерний элемент вместо родителя, и не имеет никакого значения в случае отказа найти форму с относительным URI внутри InitializeComponent(). – kvanberendonck