2010-10-26 15 views
5

Sto provando a creare un MessageBox personalizzato utilizzando una finestra WPF che viene chiamata con ShowDialog().C#/WPF, come fare una finestra (creata con la barra del titolo Window.ShowDialog()) lampeggia quando si fa clic sulla sua finestra genitore (come fa MessageBox)?

Finora, sono riuscito a implementare tutto, tranne una cosa.

Come sapete, quando si utilizza MessageBox.Show("text"); non è possibile impostare lo stato attivo o fare clic sulla finestra padre (quella che ha chiamato lo MessageBox). Se provi a fare clic sulla finestra principale, il MessageBox lampeggerà brevemente per avvisarti che devi prima chiudere.

Le finestre create con Window.ShowDialog();, tuttavia, non mostrano tale comportamento. Infatti, mentre non è possibile impostare lo stato attivo sulla finestra padre, il bambino (chiamato con ShowDialog()) non lampeggerà mai brevemente.

La mia domanda è, c'è un modo per implementarlo in WPF? Ho cercato una risposta, ma devo ammettere che sono perplesso.

Grazie a tutti!

risposta

11

È necessario impostare correttamente Owner della finestra modale, ad es. utilizzando il seguente codice all'interno della finestra di possedere:

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

Così semplice ... Bene, ora mi sento stupido! Molte grazie! –

3

si dovrà impostare Owner beni del minore al genitore WindowWindow. Vedere la documentazione MSDN here.

Problemi correlati