Вопрос

Мы портим приложение MFC в WPF, и, вероятно, не будет успеть портировать все приложение. Приложение MFC имеет много Windows на основе CDialog, и мы думаем о том, чтобы оставить некоторые из этих Windows в MFC и показать их внутри окна WPF, поэтому мы можем контролировать их модальность от WPF.

Есть ли простой способ достичь этого? Если нет, вы можете порекомендовать еще один способ справиться с этим?

Спасибо,
ширина

Это было полезно?

Решение

Я посмотрел на это некоторое время назад для аналогичного наследия приложения, я начал с Обзор взаимодействия WPF и Win32 вместе с Host MFC Class унаследован от CWND в WPF. Отказ Обратитесь к (и искать) Hwndhost Class., вместе с Хостинг простого контроля Win32 в приложении WPF.

Проблема заключалась в том, что она никогда не работала хорошо - я почувствовал, что он скомпрометировал приложение WPF, и я не мог заставить его работать где угодно, настолько близко, поэтому я отказался от этого подхода.

Таким образом, проводя разные приложения, я перестроил приложение MFC в качестве автономного «поставщика диалога», который только что имел все диалоги. Это только все диалоговое окно работало и уведомило, что приложение WPF результатов. Это сработало и позволило приложению двигаться вперед. Я тоже пытался Используя каркас .NET внутри приложения MFC Но это не сработало изначально и время было сущности.

Окончательный результат был преобразователем по вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопросам вопроса, написанный .RC .CPP и a .h и произвел XAML & C # для каждого диалога в форме, готовой к редактированию. Если вы построили свои диалоги MFC, используя мастер классов, то должны быть полезными разделителями, которые были очень полезны в этом процессе.

Пример полезной разделитель:

//{{AFX_DATA_INIT(CDialogFileProperties)

Другие советы

Если вы используете стандартные общие диалоги, то просто используйте эквиваленты WPF, в противном случае вам, возможно, придется сделать их с нуля в WPF. Или используйте элемент управления хостом Windows Forms, которые отображают диалоговое окно внутри окна WPF.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top