2010-07-18 14 views
6

Jetzt habe ich ein normales Fenster mit einer Reihe von Steuerelementen.Wie kann ich ein Steuerelement in einem Fenster überlagern?

Wenn der Benutzer eine bestimmte Taste drückt, möchte ich das gesamte Fenster abdunkeln und dann ein Popup darüber anzeigen. Kein echtes Dialogfeld, nur etwas, das sich im Fenster befindet.

Das ist also meine Theorie ...

  1. Jede Steuerung ist auf Layer 0
  2. Es ist ein Rechteck mit der gleichen Größe wie die Form in Schicht 1. Diese hat 50% Transparenz.
  3. Mein Popup wird in Layer 2 geladen.
  4. Klicken Sie auf eine beliebige Stelle auf dem Rechteck, um das Popup zu schließen.

Ist das möglich?

Antwort

9

Das ist perfekt möglich.

Setzen Sie Ihre gesamte Benutzeroberfläche in ein beliebiges Panel in einem <Grid>.

Setzen Sie dann im selben Raster eine <Rectangle Opacity=".5" Visibility="Collapsed" /> für das Overlay und ein zentriertes Panel für das Popup ein.

Behandeln Sie das Klickereignis des Rechtecks ​​und blenden Sie das Popup aus.

+0

Das hat wie ein Charme funktioniert. –

+1

@SLaks Muss ich nur '', da ich kein Rectangle sehe, wenn ich die 'Visibility' in' Visible' ändere. Wie bekomme ich das Rechteck, um das gesamte Fenster zu füllen? – MattC

Verwandte Themen