Проблемы с обновлением элементов управления winforms в WPF Host? - PullRequest
0 голосов
/ 22 февраля 2012

Я искал Prism для размещения старого приложения Winforms. Это используется в нашей миграции с Winforms -> WPF в нашей компании. Однако я столкнулся с некоторыми проблемами.

Короче, у меня есть проект, изложенный примерно так:

Краткое описание проекта

DataManager WPF Project

Модуль MEF, который при инициализации регистрирует представление у менеджера региона и ссылается на старый проект winforms - Вид - который содержит пользовательский элемент управления WPF и WindowsFormsHost, который указывает на главный вид старого проекта winforms.

Проект DataManager Winforms Содержит старый модуль, который нужно инициализировать с представлениями

Хост Содержит оболочку и загрузчик - Shell имеет основной регион, в который встраивается представление WPF DataManager.

Итак, у меня проблема в следующем. Старое представление Winforms корректно загружается в оболочку WPF через новое представление WPF. Однако любой контент, добавленный в представление после этого, не обновляется. Я попытался добавить несколько кнопок на экран. Я также попытался очистить все элементы управления.

Осмотревшись здесь, я предложил прослушать событие Size Changed и вызвать Child.Refresh на WPFHost, но все равно это не сработало.

Является ли это конкретной проблемой WPF, как обсуждалось здесь: Обновляет ли WPF рисунок, похожий на Windows Forms?

Или это проблема с неправильным обновлением представления в менеджере региона? WPF, Prism v2, Region в модальном диалоге, добавьте регион в коде за

Кажется, ничего из этого не работает!

Возможно, мне нужно запустить перерисовку или подобное в самом элементе управления winforms? Изменить: вызов Refresh () после обновления пользовательского интерфейса не решил проблему.

Редактировать 2: также пробовал это в старом приложении Winforms (.net 2.0), и он отображался правильно!

1 Ответ

0 голосов
/ 24 февраля 2012

Хорошо, я добавил стандартный проект winforms с некоторыми элементами управления вместо старого проекта, который я использую, и он работал. Возможно, отсутствуют некоторые этапы инициализации устаревшего проекта winforms.

...