Seiten

Mittwoch, 27. April 2011

Benutzerdefinierte angefügte Abhängigkeitseigenschaft IsKeepFocusVisual für den HyperlinkButton

Kürzlich habe ich ein HyperlinkButton Custom Control veröffentlicht. Dieses Custom Control hat die zusätzliche Funktion, visuell anzuzeigen, ob der HyperlinkButton geklickt wurde, auch wenn er den visuellen Focus verloren hat.

Die selbe Funktionalität habe ich nun mithilfe einer benutzerdefinierten angefügten Abhängigkeitseigenschaft für einen regulären HyperlinkButton realisiert. Der Download wird in der Expression Gallery bereitgehalten. Dort gibt es auch einen Link zu einer Beispielanwendung.

Diese Lösung ist eine alternative Herangehensweise. Die Implementierung dieser Funktionalität mittels einer benutzerdefinierten angefügten Abhängigkeitseigenschaft ist meine bevorzugte Lösung. Denn sie ermöglicht die größtmögliche Freiheit bei der Gestaltung des Style bzw. der Vorlage eines regulären HyperlinkButton.

Ich werde in den nächsten Tagen hier im Blog einen detaillierten Artikel über die alternativen Lösungen veröffentlichen.

Freitag, 15. April 2011

Datenbindung für den reichhaltigen Text eines RichTextBox-Steuerelements durch eine angefügte Abhängigkeitseigenschaft

Heute las ich einen Artikel in Delay's Blog über eine angefügte Abhängigkeitseigenschaft für ein WebBrowser-Steuerelement. Ich kann nur empfehlen, diesen Artikel mal zu lesen. Als ich diesen Artikel gelesen hatte, dachte ich mir, dass es cool wäre, wenn es etwas vergleichbares auch für die RichTextBox.Xaml-Eigenschaft gäbe. Die RichTextBox.Xaml-Eigenschaft ist eine einfache Eigenschaft vom Typ String und keine Abhängigkeitseigenschaft. Wenn dies eine Abhängigkeitseigenschaft wäre, so wäre es möglich, den Inhalt für eine RichTextBox über Datenbindung zu setzen.

Also habe ich mich hingesetzt und eine kleine Klasse geschrieben, mit deren Hilfe eine Datenbindung für den reichhaltigen Inhalt einer regulären RichTextBox möglich wird. Dabei wird die angefügte Abhängigkeitseigenschaft XamlSource verwendet.

Eine Verwendung dieser angefügten Abhängigkeitseigenschaft setzt natürlich voraus, dass man einen String hat, der Xaml-Code enthält, der von der RichTextBox.Xaml-Eigenschaft verstanden wird. Hierfür verwende ich einfach xml-Dateien, die zuvor mit meinem RichTextBox.Xaml Builder Addin erstellt wurden.

Nachfolgend stelle ich eine kleine Beispielanwendung vor und beschreibe kurz, wie einfach die Logik funktioniert.

Mittwoch, 6. April 2011

Stay Selected HyperlinkButton Custom Control

In einer Silverlight-Navigationsanwendung mit mehreren HyperlinkButton-Steuerelementen ist es ein bekanntes Problem: Wenn der Nutzer den Fokus beispielsweise in ein TextBox-Steuerelement setzt, dann verliert der HyperlinkButton seinen Fokus. Mit dem Verlust des Fokus verliert der HyperlinkButton zugleich seine Indikatorwirkung, das heißt, er zeigt nicht mehr an, welche Seite derzeit aktiv ist.

Der SilverLawHyperlinkButton, ein custom control, zeigt eine Lösung für dieses Problem auf.