none
Überlagertes Steuerelement in einem WPF-Benutzersteuerelement RRS feed

  • Frage

  • Salü zäme
    Ich habe mir ein WPF-Benutzersteuerelement gebaut. Zur Auswahl von Elementen (Benutzerfunktion) möchte ich ein "Auswahl-Benutzersteuerelement" fallweise einbinden können. Und zwar nicht so, dass das Grundformular verändert werden muss (z.B. verziehen oder ausblenden, Bereiche vergrössern oder ähnliches). Ich möchte dieses Auswahl-Steuerelment wie in einem zweiten Layer über das bestehende Formular legen können, ohne eine Veränderung am Grundformular. Nach der Auswahl, soll das überlagerte Fenster wieder geschlossen werden können und das Grundformular steht wieder voll zur Verfügung.

    Bei Windows-Forms konnte man dies machen, indem Steuerelemente übereinander platziert werden und mit Hidden bzw. Visible bei Bedarf angezeigt werden konnten.

    Wie könnte man so was mit WPF-Formularen tun?

    Freundliche Grüsse
    Jakob Brunner


    Jakob Brunner, Switzerland
    Donnerstag, 14. Oktober 2010 05:34

Antworten

  • Mit Grid geht das grundsätzlich.

    Wenn dein Root-Element im Window bereits ein Grid ist, fügst du dein
    Element ganz unten ins Grid ein, und verpasst dem Element entsprechende
    Column- und Rowspans.

    Ansonsten kannst du auch jederzeit ein einfaches Grid in die Hierarchie
    einfügen, ohne Deklaration hat es automatisch genau eine Spalte und eine
    Zeile.


    /\/\arkus.
    • Als Antwort markiert Jakob.Brunner Donnerstag, 14. Oktober 2010 12:34
    Donnerstag, 14. Oktober 2010 11:51

Alle Antworten

  • Mit Grid geht das grundsätzlich.

    Wenn dein Root-Element im Window bereits ein Grid ist, fügst du dein
    Element ganz unten ins Grid ein, und verpasst dem Element entsprechende
    Column- und Rowspans.

    Ansonsten kannst du auch jederzeit ein einfaches Grid in die Hierarchie
    einfügen, ohne Deklaration hat es automatisch genau eine Spalte und eine
    Zeile.


    /\/\arkus.
    • Als Antwort markiert Jakob.Brunner Donnerstag, 14. Oktober 2010 12:34
    Donnerstag, 14. Oktober 2010 11:51
  • Danke für deine Antwort
    Ja es geht, wenn ich das einzublendende Steuerelement nach den anderen erzeuge. Denn das letztere wird über das vorangegangene gezeichnet.
    Ist nicht ganz schön, überdeckt es einerseits die vorangegangenen XAML-Definitionen und es kann nur recht statisch angewandt werden.

    Danke und Gruss
    Jakob


    Jakob Brunner, Switzerland
    Donnerstag, 14. Oktober 2010 12:36
  • Stimmt, schön ist das im Designer nicht, da er die Visibility ignoriert.

    Aber selbst Actipro machen das in ihrem Sample-Browser so: Ganz im
    Vordergrund überlagert ein "Loading.."-Schriftzug mit halbtransparentem
    dunklem Hintergrund das komplette Usercontrol/Window.


    /\/\arkus.
    Donnerstag, 14. Oktober 2010 12:43