Я новичок в мире Windows, и я думаю, что теряюсь в сорняках из-за проблемы.Я хотел бы получить совет от людей с опытом работы с C ++ / CLI, WPF и XAML.
У меня есть код win32, и мне нужно запустить WPF GUI.Я нашел этот пример прохождения MS, в котором используется C ++ / CLI .Я адаптировал его к своим целям, и он прекрасно работает.
Далее я хотел бы извлечь программные материалы WPF и использовать вместо этого XAML.Это так, чтобы я мог передать XAML дизайнеру и вытащить себя из цикла разработки пользовательского интерфейса, к которому я совершенно точно не принадлежу.Прочитав раздел «Проекты взаимодействия WPF» в Взаимодействие WPF и Win32 на MSDN , я решил воспользоваться опцией XamlReader::Load
и загрузить нескомпилированный XAML во время выполнения.Моя разметка XAML - Canvas
UIElement
, которую я программно добавляю как дочерний элемент моего корневого Grid
C ++ / CLI элемента.Это прекрасно работает.
Теперь я хочу добавить обработчик событий к элементам управления в XAML.Это где я начал сталкиваться с неприятностями.Я уверен, что мое общее незнание мира Windows составляет 95% того, что меня здесь убивает.
Я начал со страницы Роба Рельея, в которой описаны различные опции XAML-и-обработчика событий .
Я решил попробовать скомпилировать XAML как C # DLL.Это в основном тот же XAML, что и в случае загрузки во время выполнения.Я создаю экземпляр объекта и программно добавляю его как ребенка, как и прежде.Но ... я не получаю ничего, кроме черного окна.Никаких исключений не выбрасывают.Я сбит с толку.
Мой вопрос, я даже направляюсь по правильному пути?На странице XAML-и-обработчиков событий сказано, что вы можете использовать обработчики событий, определенные в некомпилированном XAML в .Net Framework 4. Должен ли я прикусить пулю и просто перейти на VS 2010 (сейчас я на VS 2008), чтобы я мог использовать.Net Framework 4 и просто придерживаться скомпилированного XAML?Есть ли какие-то проблемы с такими действиями?
Или, если вы считаете, что скомпилированная C # DLL - разумный путь, есть ли у вас какие-либо идеи о том, как я могу отладить возникающие у меня проблемы?
Или есть ли лучшийи совсем другой подход?
Заранее спасибо за совет.
Полли