2014-12-21 4 views
0

Я начинающий и обладаю некоторыми навыками с XAML. У меня есть основной вид A, в котором есть кнопка для открытия всплывающего окна B. Когда это произойдет, окно A должно оставаться видимым и открытым, но отключено. Я сделал это в коде позади (может быть, не самый чистый способ, но единственный способ, которым я знаю, как). Код я использовал для этого является следующее:XAML включить/отключить просмотр с другого вида

//Code behind from view A 
     private void X-Button_Click(object sender, RoutedEventArgs e) 
     { 
      var BWindow = new BView(); 
      BWindow.Show(); 
      this.IsEnabled = false; 
     } 

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

+0

Вы правы. Это не чистый путь. В любом случае, вы можете передать 'AView' как аргумент' BView' и включить его на 'BView'. –

+0

Что такое код для закрытия окна B? –

+0

Поведение, которое вы описываете, напоминает мне окно Child. Я рекомендую вам взглянуть на расширенную библиотеку инструментов WPF Toolkit. Там вы можете найти реализацию ChildWindow: http: //wpftoolkit.codeplex.com/wikipage? Title = ChildWindow & referringTitle = Home – octavioccl

ответ

0

Вы можете сделать это следующим образом.

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

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    Window BWindow = new BWindow(); 
    BWindow.Show(); 
    BWindow.Closed += BWindow_Closed; 
    this.IsEnabled = false; 
} 

void BWindow_Closed(object sender, EventArgs e) 
{ 
    Window win = sender as Window; 
    if (win != null) 
    { 
     win.Closed -= BWindow_Closed; 
    } 
    this.IsEnabled = true; 
} 
+0

Это сработало для меня. Благодарю. – Grecht

0

Я предполагаю, что вы ищете модальное окно. См. Аналогичный вопрос, заданный здесь: How do make modal dialog in WPF?

Решение находится в использовании метода ShowDialog от Window. См. Здесь для справки:

Модальное окно - это концепция, когда вы открываете новое окно B из существующего окна A. Когда B открыт, A отключен и не может быть использован. Окно А становится активным только тогда, когда B закрыт.