head.WriteLine()

Dienstag, Mai 17, 2011

TT.UIA: Adorner

Nachdem ich im letzten Post die Funktionsweise von TT.UIA vorgestellt habe, soll es nun um die einzelnen Adorner und ihre Anwendung gehen. Doch bevor es losgeht, erkläre ich - zum besseren Verständig - das Prinzip der WPF Adorner noch einmal in ein paar Worten.

WPF Adorner

Bei Adornern handelt es sich um grafische Erweiterungen, die zur Laufzeit mit beliebigen Elementen des visuellen Baums verbunden werden können. Hierbei zeichnet der Adorner über die Oberfläche des zugehörigen Controls, bzw. erweitert dieses um zusätzliche Elemente. Adorner sind Teil von WPF und wurden ursprünglich für die Abbildung von Drag & Drop-Funktionalität entwickelt. Sie eignen sich jedoch auch gut für punktuelle Erweiterungen. So werden sie beispielsweise auch bei der Validierungsfunktionalität von WPF verwendet.

TT.UIA-Adorner

Für die Zuweisung von Adornern bietet TT.UIA die zentrale Klasse Annotations. Sie bietet eine Reihe von Attached Properties, die zur Erstellung von Konfiguration dienen. Beispiel:
<TextBox 
  uia:Annotations.ShowElementTracker="True"
  uia:Annotations.TrackerImageAlignment="Left" />

ElementTracker
Hier wurde der ElementTracker-Adorner zugewiesen und über die Eigenschaft TrackerImageAlignment positioniert.

Adorner per Style zuweisen

Die Zuweisung per Attached Property hat den Vorteil, dass kein zusätzlicher Code erforderlich ist und sich die Adorner auch per Style zuweisen lassen. Beispiel:
<Style TargetType="{x:Type TextBox}">
  <Setter Property="uia:Annotations.ShowElementTracker"
          Value="True" />
  <Setter Property="uia:Annotations.TrackerImageAlignment"
          Value="Left" />
</Style>

Hier wurde ein impliziter Style definiert, der automatisch allen Textboxen den ElementTracker-Adorner zuweist.

Die Adorner-Sammlung von TT.UIA

TT.UIA bietet eine Reihe vorgefertigter Adorner. Hier eine kurze Auflistung der entsprechenden Attached Properties mit Beschreibung:
  • HighlightOnFocus markiert das fokussierte Element mit einem weichen Rahmen.
    HighlightOnFocus
  • IsRequired markiert ein Pflichtfeld, welches über RequiredImageAlignment positioniert werden kann.
    Required
  • ShowEditTracker markiert Felder, dessen Wert vom Benutzer geändert wurden. Die Position kann über TrackerImageAlignment festgelegt werden.
    EditTracker
  • ShowElementTracker zeigt ein Symbol vor oder hinter dem aktuell fokussierten Element an. Die Position kann über TrackerImageAlignment festgelegt werden.
    ElementTracker
  • AttachErrorTemplate verknüpft das Control mit einem Error Template, das im Fehlerfall angezeigt wird.
    ErrorTemplate
  • AttachEditContextMenu verknüpft ein Eingabesteuerelement mit einem erweiterten Editor-Context-Menü.
    EditContextMenu
  • AttachEditorToolbar verknüpft ein Eingabesteuerelement mit einer Editor-Toolbar.
    EditorToolbar
  • CueBanner weist dem zugewiesenen Control ein Wasserzeichentext zu.
    CueBanner
  • AttachSmartTag weist dem zugewiesenen Control einen Smart Tag zu. Dessen Menü muss hierbei über die Eigenschaft SmartTagMenu zugewiesen werden.
    SmartTag
Eine detaillierte Beschreibung aller Adorner findet ihr in der Dokumentation von TT.UIA, die Implementierungsdetails werde ich in Kürze in der dotnetpro veröffentlichen.
Im nächsten Post geht es um die Möglichkeit Adorner automatisch per Data Annotations zuzuweisen.

Labels: