Control.FromHandle для WPF - PullRequest
       6

Control.FromHandle для WPF

2 голосов
/ 04 августа 2010

Есть ли что-то вроде:

Control.FromHandle(IntPtr)

Для WPF. Этот метод доступен для WinForms, поэтому мне просто интересно, есть ли в WPF его тоже.

Спасибо!

1 Ответ

6 голосов
/ 04 августа 2010

Большинство элементов WPF не создают HWND, поэтому это обычно применяется только к элементам верхнего уровня, таким как Window.Вы можете использовать HwndSource.FromHwnd , чтобы получить PresentationSource, а затем использовать свойство RootVisual , чтобы получить корень визуального дерева:

var rootVisual = HwndSource.FromHwnd(hWnd).RootVisual;

Также см. Обзор взаимодействия WPF и Win32 для получения более подробной информации о том, как WPF использует HWND:

Все элементы WPF на экране в конечном итоге поддерживаются HWND.Когда вы создаете окно WPF, WPF создает HWND верхнего уровня и использует HwndSource для помещения окна и его содержимого WPF внутрь HWND.Остальная часть вашего WPF-контента в приложении делится этим единичным HWND.Исключением являются меню, выпадающие списки и другие всплывающие окна.Эти элементы создают свое собственное окно верхнего уровня, поэтому меню WPF потенциально может выходить за границы окна HWND, в котором оно находится.Когда вы используете HwndHost для размещения HWND внутри WPF, WPF сообщает Win32, как расположить новый дочерний HWND относительно HWND окна WPF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...