Элемент WPF, размещенный в ElementHost, неправильно перерисовывается

Я пишу программу для реализации COM-компонента на С#. Этот компонент также предоставляет компонент пользовательского интерфейса. Чтобы упростить реализацию будущих дополнений к компоненту, я решил написать пользовательский интерфейс на Xaml с использованием WPF и обернуть его в элемент управления ElementHost, чтобы предоставить дескриптор обратно потребителю COM.

Вот где это становится интересным. Элемент размещается в элементе управления вкладками win32. При первом выборе вкладки она загружается нормально. Переключение на другую вкладку и возврат назад приводит к неправильному отображению компонента. Если я проведу через него мышью, он нарисует элементы TextBox, но никогда не перерисует весь UserComponent.

Я пробовал все возможные решения, которые я видел, от изменения значений высоты/ширины компонента до перевода HwndTarget в режим рендеринга SoftwareOnly.

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


person Tym Lipari    schedule 20.12.2012    source источник
comment
Я в такой же ситуации, пожалуйста, напишите здесь решение, если вы его нашли. Вероятно, это поможет вам: Исходный код ElementHost   -  person Yuriy    schedule 07.02.2013


Ответы (1)


Такой проблемы еще не встречал. Попробуйте принудительно обновить или сфокусировать (методы) оболочку хостинга или HwndSource при переходе на вкладку хостинга.

person Vladik Y    schedule 14.01.2013