Startseite > Design Time , Silverlight > Anpassen Silverlight Toolkit Controls: Expander

Customize Silverlight Toolkit Controls: Expander

Einführung

Dies ist der zweite Beitrag des Customize Silverlight Toolkit Steuert Reihe. Dieser Beitrag zeigt, wie Expander anpassen und stellt die am häufigsten gestellten Anpassungen von Silverlight Toolkit Forum .

Expander Customization

So passen Expander, ist es sehr wichtig, seine API und das Standard-Template zu verstehen und wissen, wie man Blend re-Vorlage ein Steuerelement verwenden. Ich würde empfehlen Sie lesen meinem vorherigen Post Expander Control in Silverlight Toolkit , wenn Sie noch nicht haben. Der Schlüssel zum Expander anpassen:

  • verstehen, Expander-Schnittstelle, vor allem seine Kontrolle Vertrag:
    • Expander erwartet eine Vorlage Teil, eine Schaltfläche namens "ExpanderButton", in seiner Vorlage. Seine expand / collapse Funktion hängt von der Existenz dieser Vorlage zum Teil, weil Silverlight nicht unterstützt Zwei-Wege-Bindung.
    • Expander macht ExpansionStates visuellen Zustand Gruppe (einschließlich der erweiterten und reduzierten zwei visuelle Staaten) für Benutzer anpassen ihre erweitern und reduzieren Verhalten.
    • Expander macht ExpandDirectionStates visuellen Zustand Gruppe (einschließlich ExpandDown, ExpandUp, ExpandLeft, ExpandRight) für Benutzer das Layout für jede der vier erweitern Richtung anpassen können.
    • Expander macht auch HeaderTemplate und ContentTemplate Eigenschaften für Benutzer seinen Kopf-und Inhaltsbereich anpassen können. Sie finden diese Art der Anpassung von Silverlight Control Toolkit Beispiel .

Bild

  • verstehen Expander die Standard-Vorlage. Der Screenshot unten zeigt, wie der Standard-Vorlage das Layout der vier Richtungen zu erweitern und das Verhalten der zeigen / durch Storyboard für das ExpansionStates und ExpandDirectionStates visuellen Zustand Gruppen Zusammenbruch Griffe:
    • Der ganze Kopf ist ein Template ToggleButton, so klicken Sie sowieso auf der Kopfzeile kann expand / collapse den Content-Bereich.
    • Es verwendet eine 2 × 2-Grid-Layout Header-und Content-Bereich.
    • Es legt die Expander nach ExpandDirection, indem staatliche Animation für ExpandDirectionStates:
      • Sie legt Kopf-und Content-Bereiche durch die Animation ihre Grid.Row und Grid.Column Eigenschaften.
      • Er zieht die Header Toggle-Button richtig durch Änderung ihrer Vorlage.
    • Es erweitert / zusammenbricht Content-Bereiche durch die Animation ihre Visibility Attribut in ExpanionStates Zustandsübergänge.

ExpandDirection Zustand Animation

Unten Screenshot zeigt die am häufigsten gestellten Anpassungen. Wenn Sie Silverlight 2.0 installiert haben und Ihre Leser unterstützt Live-Silverlight-Anwendung können Sie mit ihm spielen hier auch:

Expander Customization

  • PDC08 zeigt den Expander in aktuelle Release auf Codeplex. Es ist ein Fehler in ExpanderRightHeaderTemplate (verwendet, wenn Sie ExpandDirection nach rechts gesetzt), die eine hohe CPU-und Speicherauslastung verursacht. Dies wurde behoben und das Update wird im nächsten Release in ein paar Wochen sein. I für die Unannehmlichkeiten entschuldigen. Expander ist mein allererstes Silverlight-Steuerelement. Ich wusste nichts über Silverlight oder WPF, bevor ich Shawn Team trat ein paar Monate zurück, und ich kann immer noch nicht glauben, wie zerbrechlich XAML und Animation sind. Es dauerte eine lange Zeit auf die Spur der ein Zeichen fix: ein (von Dutzenden) ObjectAnimationKeyFrames Duration-Attribut versehentlich auf "1" gesetzt, statt "0". Das trieb Silverlight Runtime Nüssen und hog CPU / Speicher.
  • New (ExpanderStyle) zeigt die neue Vorlage in Kürze veröffentlicht werden.
  • Fade In / Out (ExpanderFadeStyle) passt das expand / collapse Verhalten animieren Deckkraft, um den Inhalt in-und ausgeblendet werden.
  • Scale-In / Out (ExpanderScaleStyle) passt das expand / collapse Verhalten animieren ScaleTransform.ScaleX und ScaleTransform.ScaleY zwischen 1 und 0 zu erweitern und verkleinern den Inhalt.
  • Kein Button (ExpanderNoButtonStyle) passt das Layout, indem Sie den Kreis mit Pfeil Toggle-Buttons. Sie können noch expand / collapse Inhalte mit Maus oder Tastatur.
  • Unten / Rechts-Taste (ExpanderBottomRightButtonStyle) passt das Layout, indem Sie den Kreis mit Pfeil Umschaltfläche unten / rechts im Header.

Source Code

Hier finden Sie die gezippte Projektdatei:


Abschluss

Expander hat die Top-Keyword auf meinem Blog. Es ist ein sehr nützliches Steuerung und relativ schwer zu gestalten. Hoffentlich Beitrag werden Sie in Verwendung und Anpassung Expander helfen. Vielen Dank!

  1. Mr. Bungle
    20. Februar 2011 um 03.21 Uhr | # 1

    @ Mr. Verpfuschen
    Für andere wollen, dies zu tun, war das Beste, was ich tun konnte die Sichtbarkeit der Kontrolle innerhalb der Expander in der XAML-Collapsed, dann hakte die erweiterten und reduzierten Veranstaltungen der Muttergesellschaft Expander-Steuerung und die Sichtbarkeit der Steuerung im Inneren des Expanders auf Visible (in der Expanded-Ereignis) und Collapsed (in der Collapsed-Ereignis). Diese geben eine etwas kürzere Übergangsphase in Kraft, und fade out ist komplett verschwunden, aber zumindest das Layout ist gut funktionieren.

  2. Mr. Bungle
    20. Februar 2011 um 02:54 | # 2

    Die fadeexpanderstyle ist toll, außer dass es den Inhalt der Höhe erfordert ausgesetzt, während der Expander ist immer noch in "zusammengebrochen"-Modus sein. So bedeutet, Sie können nicht einen Teil Expander in eine vertikale StackPanel. Gibt es eine (simplish) Änderung des Stils, damit die Höhe der Expander mit Stil fadeexpanderstyle auf 0 sein, wenn zusammengebrochen?

  3. Anonym
    9. September 2009 um 10:33 | # 3

    Hallo Ning,

    Ist es möglich, das Symbol des Expander-Taste durch etwas anderes ersetzen. Haben Sie ein Beispiel dafür. Hilfe ist sehr willkommen.

    Regards,
    Sanket

  4. Anonym
    31. Dezember 2008 um 16:37 | # 4

    Vielen Dank für diese großartige Kontrolle, aber ich schlage vor, um die folgenden:

    Wenn man legte die Erweiterung Richtung "ExpandRight" und der Inhalt ist zusammengebrochen, der Pfeil des Toggle-Buttons zeigt nach links Richtung. Das ist ein bisschen böse. Ich schlage vor, die Kontrolle, indem Sie auf den Pfeil des Toggle-Buttons zeigt standardmäßig in die richtige Richtung, wenn der Inhalt in ExpandRight-Staat zusammengebrochen ist fix.

    Wenn der Inhalt reduziert ist dieses Verhalten wäre besser für den Anwender, weil dann der Pfeil des Toggle-Button verweist auf die Richtung, wo der Inhalt angezeigt wird.

    Mit den besten Grüßen aus elektronischen LawBot
    (Hamburg, Deutschland)

  5. Anonym
    12. Dezember 2008 um 09:56 Uhr | # 5

    Die Höhe der Expander-Header hat in der Dezember-Version geändert. Wie kann ich ihn ändern - ich finde keine Height-Eigenschaft auf HeaderedContentControl.Header?

  6. Anonym
    1. Dezember 2008 um 10:34 | # 6

    Haben Sie Beispiele für die Animation der Dropdown-Liste des Expanders? Ich brauche einen Expander die beginnt als unexpanded, dann allmählich erweitert, um die volle Höhe des ContentControl. Der Fade In / Out und Scale In / Out sind gut, aber sie erfordern den Expander zum Auftakt in voller Höhe.

  7. Anonym
    27. November 2008 um 00:00 | # 7

    Hallo Ning,

    Vielen Dank für dieses Update. Ich hatte gehofft, eine Probe mit dem "Knopf" auf der rechten Seite zu finden und dies scheint die Arbeit zu tun.

    Thanks,
    Martin

  1. Bisher keine Trackbacks.