none
WPF: Expander Header mit Gradient Style versehen RRS feed

  • Frage

  • Ich bin relativ unerfahren mit WPF und muß/darf mich seit kurzem damit beschäftigen. Da ich von Windows Forms komme, tue ich mir derzeit noch entsprechend schwer.
    Aktuell möchte ich den Header eines Expander-Controls mit einer Art Gradient-Style versehen (so eben wie ein Button). Das soll ungefähr so aussehen:

    Ich habe im Netz schon herumgesucht und recherchiert, aber so richtig werde ich nicht schlau. Kann mir hier diesbezüglich jemand weiterhelfen, evtl. auch mit einem XAML Code-Snipped. Danke gleich mal im Voraus.

    Mittwoch, 2. April 2014 07:44

Antworten

  • Hallo,
    ich habe gerade kein VS hier, weswegen ich es nicht testen kann.

    Trotzdem habe ich 2 Ideen:

    1. Versuche den Header wie folgt zuzuweisen:
      <Expander ...>
        <Expander.Header>
          <Label Content="Header">
            <Label.Background>
              <LinearGradientBrush>...</LinearGradientBrush>
            </Label.Background>
          </Label>
        </Expander.Header>
      </Expander>
      Wenn du in 'Label' klickst und ins Eigenschaftenfenster (F4) wechselst, kannst du ganz einfach mit dem Editor einen Farbverlauf einstellen.
      Ich bin mir aber nicht sicher, wie genau das Resultat aussieht oder ob man überhaupt ein Label übegeben kann.
    2. Die 2. Lösung funktioniert garantiert, ist aber auch aufwendiger. Du musst dafür nur ein ControlTemplate erstellen. Ein Beispiel gibt es hier in der MSDN. Auf Codeproject gibt es noch ein weiteres Beispiel. Der Vorteil bei dieser Lösung ist, dass du ganz einfach den selben Style auf alle Expander anwenden kannst.

      Ab Visual Studio 2012 kannst du im WPF Designer einen Rechtsklick auf den markierten Expander machen und Vorlage bearbeiten > Kopie bearbeiten wählen. Dadurch wird dir das Standardtemplate erstellt.

    Wenn du noch Hilfe brauchst, schreibe es hier. Dann kann ich auch nochmal ein möglichst einfaches, funktionierendes Beispiel posten.


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort vorgeschlagen Ionut DumaModerator Dienstag, 8. April 2014 12:48
    • Als Antwort markiert mober Mittwoch, 9. April 2014 12:46
    Mittwoch, 2. April 2014 10:08
    Moderator

Alle Antworten