2015-03-04 3 views
1

Всплывающее окно, определяемое моим родительским окном, покрывается дочерним окном. Я хотел бы, чтобы всплывающее окно отображалось поверх всех окон приложений.Как защитить всплывающее окно от нового дочернего окна?

My parent Window имеет Topmost = "True" и содержит всплывающее окно (с Placement = "AbsolutePoint"), а также запрос взаимодействия для запуска дочернего окна. В запросе взаимодействия это происходит:

  1. дочернего окна создается с TOPMOST = «True» и владелец = ParentWindow
  2. Topmost устанавливается в ложь на родительском окне
  3. ShowDialog вызывается для дочернего окна

Всплывающее окно отображается поверх родительского окна, но ниже дочернего окна. Я пробовал превратить ChildWindow.Topmost в «False», но это не помогает.

+0

«Всплывающее окно отображается поверх родительского окна, но ниже дочернего окна». - Не могли бы вы предоставить скриншот того, что происходит? –

+0

Отображение дочернего окна с использованием метода 'ShowDialog()' означает, что это окно будет модальным для всего приложения, поэтому не должно быть другого окна, которое было бы поверх него. Вам нужно сделать мода вашего ребенка модным? – dymanoid

+0

@Mike Eason - Мне нужно поставить снимок экрана, когда я вернусь домой, но представьте себе этот z-порядок: ParentWindow, Popup, ChildWindow (с ChildWindow на переднем крае, поверх всего) – Julius

ответ

0

Немного неудовлетворительно, но я собираюсь перепроектировать мой подход, чтобы использовать 2 всплывающих окна, а не 1 всплывающее окно и 1 дочернее окно, которое должно иметь порядок z, связанный с порядком, в котором они открыты. Это также предотвращает появление другого окна на панели задач.

Я считаю, что проблема связана с тем, что всплывающие окна - это действительно просто окна, и сложно сделать 3 окна хорошо играющими вместе. Я не узнал, какие свойства/свойства несут ответственность, но это будет некоторая комбинация Topmost, Owner и какое окно в настоящее время активировано, отключая меня.

 Смежные вопросы

  • Нет связанных вопросов^_^