2010-10-26 12 views
5

Próbuję utworzyć niestandardową wiadomość MessageBox za pomocą okna WPF, które jest wywoływane z ShowDialog().C#/WPF, jak sprawić, aby okno (utworzone przy pomocy Window.ShowDialog()) migało podczas klikania jego okna nadrzędnego (np. MessageBox)?

Do tej pory udało mi się zrealizować wszystko, z wyjątkiem jednej rzeczy.

Jak wiadomo, podczas korzystania z MessageBox.Show("text"); nie można ustawić ostrości ani kliknąć okna nadrzędnego (tego, które nazywa się MessageBox). Jeśli spróbujesz kliknąć okno nadrzędne, MessageBox będzie migać krótko, aby powiadomić Cię, że musisz najpierw zamknąć.

System Windows utworzony za pomocą Window.ShowDialog(); nie pokazuje tego zachowania. W rzeczywistości, podczas gdy nie można ustawić fokusu na okno nadrzędne, dziecko (wywołane z ShowDialog()) nigdy nie zamiga krótko.

Moje pytanie brzmi, czy jest jakiś sposób wdrożenia tego w WPF? Szukałem odpowiedzi, ale muszę przyznać, że jestem zakłopotany.

Dziękuję wszystkim!

Odpowiedz

11

Musisz poprawnie ustawić Owner okna modalnego, np. stosując następujący kod w oknie posiadanie:

Window win = new SomeModalWindow(); 
win.Owner = this; 
win.ShowDialog(); 
+1

Tak prosty ... Cóż, teraz czuję się głupio! Wielkie dzięki! –

3

Trzeba by ustawić Owner własność dziecka do rodzica WindowWindow. Zobacz dokumentację MSDN here.