Баг при разворачивании нескольких свернутых и связанных окон
От: monstrillo  
Дата: 22.08.14 12:17
Оценка:
Ситуация следующая. В проекте всего 3 окошка (Первое, Второе и Третее , каждое открывается как модальное, Второе в качестве Owner-a ссылается на первое, Третье окошко в качестве Owner-a ссылается на второе. По сути цепочка окон. На Первом окошке кнопка, кнопку нажимаем — второе окошко открылось, на Втором окошке тоже кнопка — открывает Третье окошко. Теперь сворачиваем третье окно — сворачиваются все три окна (потому что Owner-ы проставлены). Далее суть проблемы. Пытаемся развернуть окна из TaskBar-а, если кликать на Первое окошко или Третье (крайние в цепочке) — развернутся все три окна. Но если кликнуть на Второе — окна развернутся частично, т.е. Третье не развернется. Прилагаю для понятности ссылку на архивированный проект. Скачать и прокликать, чтоб понять в чем соль — одна минута.

LinkToProject

А вот и код на всякий случай

Первое окно XAML:

<Button Click="OpenChildWindow" 
            Content="ChildWindow"/>



Первое окно .cs:

private void OpenChildWindow(Object sender, RoutedEventArgs e)
    {
        var window = new SecondLevelWindow();
        window.Owner = this;
        window.ShowDialog();
    }




Второе окно XAML:

<Button Click="OpenChildWindow" 
            Content="ChildWindow"/>




Второе окно .cs:

private void OpenChildWindow(Object sender, RoutedEventArgs e)
    {
        var window = new ThirdLevelWindow();
        window.Owner = this;
        window.ShowDialog();
    }




ТретьеОкно — пустое окно без содержимого.

Как я только что выяснил, баг не проявляется, если свойство ResizeMode третьего окна выставлено в "NoResize". Однако, вопрос открыт.

.Net 4.0, Win 7
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.