Condividi tramite


Window.Show Metodo

Definizione

Apre una finestra e restituisce senza attendere la chiusura della finestra appena aperta.

public:
 void Show();
public void Show();
member this.Show : unit -> unit
Public Sub Show ()

Eccezioni

Show() viene chiamato in una finestra che sta chiudendo (Closing) o è stata chiusa (Closed).

Esempio

Nell'esempio seguente viene illustrato come aprire una finestra senza modalità.

// Initialize window
Window window = new Window();

// Show window modelessly
// NOTE: Returns without waiting for window to close
window.Show();
' Initialize window
Dim window As New Window()

' Show window modelessly
' NOTE: Returns without waiting for window to close
window.Show()

Commenti

Quando viene creata un'istanza della Window classe, non è visibile per impostazione predefinita. Show mostra una finestra e restituisce immediatamente, senza attendere che la finestra venga chiusa. Di conseguenza, la finestra aperta non impedisce agli utenti di interagire con altre finestre nell'applicazione. Questo tipo di finestra è denominato finestra senza modalità . Esempi comuni di finestre senza modalità sono finestre delle proprietà, casella degli strumenti e tavolozze. Per limitare l'interazione di un utente con una finestra specifica, è necessario aprire la finestra chiamando ShowDialog.

Una finestra aperta chiamando Show non ha automaticamente una relazione con la finestra che l'ha aperta. In particolare, la finestra aperta non conosce la finestra aperta. Questa relazione può essere stabilita usando la Owner proprietà e gestita usando la OwnedWindows proprietà .

La chiamata Show a ottiene lo stesso risultato finale dell'impostazione Visibility della proprietà dell'oggetto Window su Visible. Tuttavia, esiste una differenza tra i due dal punto di vista temporale.

La chiamata Show è un'operazione sincrona che restituisce solo dopo la generazione dell'evento Loaded nella finestra figlio:

Window w = new Window();
w.Loaded += delegate { System.Console.WriteLine("This is written first."); };
w.Show();
System.Console.WriteLine("This is written last.");
Dim w As New Window()
AddHandler w.Loaded, Sub() System.Console.WriteLine("This is written first.")
w.Show()
System.Console.WriteLine("This is written last.")

L'impostazione Visibilitydi , tuttavia, è un'operazione asincrona che restituisce immediatamente:

Window w2 = new Window();
w2.Loaded += delegate { System.Console.WriteLine("This is written last."); };
w2.Visibility = Visibility.Visible;
System.Console.WriteLine("This is written first.");
Dim w2 As New Window()
AddHandler w2.Loaded, Sub() System.Console.WriteLine("This is written last.")
w2.Visibility = Visibility.Visible
System.Console.WriteLine("This is written first.")

Quando si imposta Visibility, tutti gli eventi di finestra registrati prima di impostare Visibility potrebbero non essere generati fino a quando il metodo in cui è stato impostato Visibility l'esecuzione è stata completata.

Si applica a

Vedi anche