У меня есть окно WPF, содержащее элемент WindowsFormsHost
. Мне нужно рисовать вещи поверх этого элемента, но характер WindowsFormsHost
означает, что он всегда находится на вершине рисованной кучи. Как я не могу рисовать в том же окне WPF поверх компонента WindowsFormsHost
, могу ли я наложить на него другое окно?
Я пробовал это в рудиментарной форме, но у меня есть несколько проблем:
1) Я не могу остановить окна из других приложений, находящихся между главным окном и окном оверлея.
2) Когда я Alt-Tab, окно оверлея появляется в списке окон, что довольно уродливо.
В принципе мне нужна концепция "дочернего окна", и окно, которое во всех смыслах и целях появляется как часть другого окна. UserControls не будет работать для меня, поскольку WindowsFormsHost
всегда будет рисовать поверх него.
Любые идеи?
Обновить [23 мая 2011 в 10:13]
Спасибо вам за ответы.
Я пробовал подход ChildWindow
, и элемент WindowsFormsHost
по-прежнему рисует сверху. Как я понимаю, только истинное окно может нарисовать поверх WindowsFormsHost
, все в одном окне будет находиться под WindowsFormsHost
.
Элемент с WindowsFormsHost
будет по-прежнему рисоваться под компонентом WinForms, они всегда нарисованы сверху, и это кажется необоротным...
Я предполагаю, что я ищу способ соединить внешнее окно, чтобы действовать как часть основного окна. На Mac существует концепция истинного "дочернего окна", я ищу что-то подобное.