2015-04-10 2 views
0

У меня возникают некоторые очень неприятные проблемы с моим окном WPF. Дизайн, который я собирался сделать:Окно WPF во всех остальных окнах после того, как окно стало видимым после свертывания

Когда пользователь сводит к минимуму окно, он минимизирует значок в системном трее (скрыть окно и значок на панели запуска). Когда пользователь щелкает правой кнопкой мыши по значку, контекстное меню будет отображаться с опциями, и один из них скажет «открыто», что откроет приложение (окно show again/unhide window agian). Пользователь также может дважды щелкнуть значок.

Довольно простой правый?

У меня нет никаких проблем minimzing на панели задач, я просто сделать следующее на заключительном мероприятии окна:

e.Cancel = true; 
this.Visibility = Visibility.Collapsed; 

Однако у меня возникли вопросы, правильно восстановить окно. Я просто сделать это в контекстном меню выберите или значок двойное событие щелчка:

this.Visibility = Visibility.Visible; 
this.Activate(); 

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

Я пробовал много вещей, таких как настройка шоу активировать в окне на true, ожидая секунды после того, как он станет видимым, чтобы активировать окно, активируя окно несколько раз (несколько раз работал, но, возможно, был 1 из 10 попытки) и т. д.

Я не думаю, что показывать/скрывать окно должно быть это раздражающим, и я не совсем уверен, что я делаю неправильно.

Любая помощь приветствуется, спасибо.

ответ

2

Только после публикации этого я понял, приложение сначала сводит к минимуму, прежде чем скрывается. Когда я показываю окно, оно отображается как сведено к минимуму.

Узнав об этой проблеме, я смог исправить эту проблему. Это может помочь другим, кто решил скрыть окно после минимизации.

EDIT Вот код, который я использовал, чтобы скрыть окно (это называется после пожаров событий для изменения состояния [минимизированы]):

Application.Current.MainWindow.Visibility = Visibility.Collapsed; 
Application.Current.MainWindow.WindowState = WindowState.Normal; 

Вы заметите, что я установить состояние окна обратно до нормального, после того как я его скрою. Несмотря на то, что окно скрыто и не отображается, оно будет в памяти восстанавливать местоположение/размер окна.

Тогда, когда я хочу, чтобы увидеть окно снова я просто:

Application.Current.MainWindow.Visibility = Visibility.Visible; 

Который покажет окно просто отлично!

Надеюсь, что это поможет кому-то!

+0

так что именно вам нужно было сделать, чтобы исправить проблему? Унимизировать окно? Что-то другое?... – BatteryBackupUnit

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