Добавление прозрачных фонов в элементы управления WindowsFormsHost в WPF - PullRequest
1 голос
/ 27 ноября 2011

Я использую WindowsFormsHost для добавления элемента управления Windows Forms в свое приложение WPF, но я понимаю, что элементы управления WinForms не могут иметь прозрачный фон без установки стиля, как здесь Как: дать вашему элементу управления прозрачный фон . Как это будет сделано в WPF?

Кстати, я использую C # и .net 4.0.

Спасибо.

1 Ответ

2 голосов
/ 28 ноября 2011

Я не думаю, что вы можете сделать это. Ссылка, которую вы предоставили, действительно позволяет установить для BackColor значение Transparent. Когда это происходит, элемент управления WinForms (в своей обработке фона рисования) получает родительский элемент управления и вызывает его методы PaintBackground и Paint. В то время как ваш элемент управления будет иметь родительский элемент - элемент управления, который создаст WindowsFormsHost, - этого элемента управления не будет, и поэтому будет нечего рисовать фон. В мире Win32 можно установить бит WS_EX_TRANSPARENT, но при этом возникают всевозможные проблемы, и я подозреваю, что он может даже не работать в зависимости от того, как работает WPF. Я хотел бы ознакомиться с темами MSDN (например, Обзор технологических областей и взаимодействие WindowsFormsHost ), в которых обсуждаются различные вопросы воздушного пространства, связанные с взаимодействием между WPF и другими технологиями.

...