Приложение c # WPF помещает объекты поверх HwndSource - PullRequest
0 голосов
/ 20 июня 2019

В приложении ac # WPF я использую стороннюю библиотеку, написанную на Visual C ++ (и обертываю ее DLL в классы C #).Один из методов библиотеки ожидает IntPtr объекта для рисования.Итак, что я сделал в своем приложении:

HwndSource parentSource = (HwndSource)HwndSource.FromVisual(LiveViewer);
IntPtr parentHWnd = parentSource.Handle;

HwndSource source = new HwndSource(
    0,
    WS_VISIBLE | WS_CHILD,
    0,
    50, // x
    50, // y
    300, // width
    300, // height
    "Viewer",
    parentHWnd
);

Он отображает контроллер в моем окне WPF, как и ожидалось, и сторонняя библиотека делает то, что ей нужно.

Я хочу поместить другие элементы управления WPF (изображения и кнопки) поверх этого нового созданного элемента управления HwndSource.Но кажется, что этот элемент управления всегда находится сверху.

Как я могу разместить элементы управления WPF над этим элементом управления?

1 Ответ

0 голосов
/ 20 июня 2019

Если вы прочитаете https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/wpf-and-win32-interoperation, вы заметите, что это ожидаемое поведение:

HwndHost появится поверх других элементов WPF в том же окне верхнего уровня.

Что вы, вероятно, могли бы сделать, это использовать Win32 api SetWindowPos, чтобы изменить его состояние на не верхнее (например, используя это решение https://chriscavanagh.wordpress.com/2008/08/13/non-topmost-wpf-popup/)

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