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

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

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

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

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

1 ответ

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

Другие вопросы по тегам