Kolumne: XAML Expertise

WPF Silverlight Silverlight for Windows Phone und Metro Style Apps
Kommentare

Liebe Leserinnen und Leser, in den zwei Jahren „Silverlight Expertise“ hat sich die Welt um XAML weitergedreht. XAML wurde mit WPF eingeführt. Dann folgte eine plattformübergreifende Lösung mit Silverlight. Kaum war Silverlight ausgereift, floss diese Technologie auch noch auf die mobilen Windows-Phone-Geräte. Bei der Workflow Foundation kann zudem die Geschäftslogik durch XAML beschrieben werden. Nun ist Windows 8 im Kommen und es zeigt uns, dass XAML für Metro-Style-Apps auch eine wichtige Rolle spielen wird. XAML ist somit ein guter Standard für viele Lösungen geworden. Aus diesem Grund wird die Kolumne „Silverlight Expertise“ durch „XAML Expertise“ erweitert und in Zukunft aus jeder Technologie abwechselnd ein paar How-tos präsentieren. Heute gibt es folgende Expertise: „Type-ahead Text Searching“, „Data Binding mit statischen Properties“ und „Standard-Animation verwenden“. Viel Spaß mit „XAML Expertise“.

Silverlight 5: Type-ahead Text Searching

Bei Inhaltssteuerelementen, wie einer ComboBox oder ListBox, ist ein schnelleres Selektieren mittels Tasteneingabe um einiges bequemer. Zum Beispiel gibt es eine Liste mit Namen, die durch das Eintippen des Anfangsbuchstabens automatisch den gewünschten Wert selektiert. Tippt man weitere Initialen ein, wird die Selektion dem Wunsch nach genauer. Exakt solch eine Funktion ist als Standard bei Silverlight 5 mit dem „Type-ahead Text Searching“-Feature für alle Inhaltssteuerelemente enthalten. Dazu wurde passend das TextSearch.TextPath Attached-Property hinzugefügt. Mit diesem kann der zu sortierende Property-Name vom Data Binding definiert werden. Listing 1 zeigt eine ListBox, die den Text vom Property-Name als Sortierregel beachten soll.

Listing 1: Einen Suchfilter für eine ListBox unter Silverlight 5 definieren


    
        
            
                
                
            
        
    
  
WPF 4.5: Data Binding mit statischen Properties

Eines der neuen Features in WPF 4.5 ist die Unterstützung für die Bindung an statischen Properties. Neben der Bindungssyntax selbst gibt es auch unterschiedliche Unterstützungen für die statische Änderungsbenachrichtigung. Für diese wird zusätzlich zum statischen Property ein statisches Event geschrieben. Der Name muss dabei Changed lauten. Werden mehrere statische Properties benötigt, so wird als Name StaticPropertyChanged verwendet und die PropertyChangedEventArgs muss beinhaltet sein. Listing 2 zeigt eine statische AccountSerivce-Klasse mit einem statischen GetUsername-Property. Das Event selbst wird durch den Setter über die OnStaticPropertyChanged-Methode gefeuert.

Listing 2: Ein statisches Property mit Benachrichtigungsevent

public static class AccountSerivce
{
    private static string _getUsername;
    public static string GetUsername
    {
        get { return _getUsername; }
        set
        {
            _getUsername = value;
            OnStaticPropertyChanged("GetUsername");
        }
    }

    public static event EventHandler StaticPropertyChanged;

    private static void OnStaticPropertyChanged(string propertyName)
    {
        var handler = StaticPropertyChanged;
        if (handler != null)
            handler(null, new PropertyChangedEventArgs(propertyName));
    }
}  

Im XAML werden eine TextBox und ein Button verschachtelt durch ein StackPanel deklariert (Listing 3). Die TextBox erhält beim Text-Property das Binding zum statischen GetUsername-Property. Hierbei wird eine besondere Syntax mit Klammern beachtet, worin der XML-Namespace + Klassenname + Property-Name folgt. Beim Button wird ein Klick-Event abonniert. In dessen Methode kann dem statischen Property ein Testwert mitgeben werden.

Listing 3: Data Binding an statische Properties


        
    
        
            
            
Metro Style App: Standard-Animation verwenden

Unter WinRT stehen dem UIElement, Panel ContentControl und dem ItemsControl zahlreiche Standard-Animationen zur Verfügung. Diese werden über das Transition-Property deklariert. Zur Auswahl steht EntranceTransition, RepositionTransition, ReorderTransition, AddDeleteTransitions und ContentTransitions. Eine angenehme Animation ist zum Beispiel das Einfliegen von Items bei einer ListBox. Diese steckt hinter der EntranceThemeTransition (Abb. 1). Wie einfach sie zum Einsatz kommt, veranschaulicht Listing 4.

Abb.1: Transitions unter WinRT - einfliegende Items bei einer ListBox mit EntranceThemeTransitions
Abb.1: Transitions unter WinRT – einfliegende Items bei einer ListBox mit EntranceThemeTransitions
Listing 4: Unter WinRT werden Standard-Animationen für Controls zur Verfügung gestellt


    
        
            
                
                  
                      
                            
                        
                  
                    
                    
                
            
        
    
    

Gregor Biswanger ist Microsoft MVP für Client App Dev und arbeitet als Solution Architect und Silverlight-Experte in der Firma impuls Informationsmanagement GmbH in Nürnberg. Seine Schwerpunkte sind die .NET-Architektur, Silverlight und agile Prozesse. Er veröffentlichte vor Kurzem seine DVD mit Videotrainings zum Thema „WPF 4 und Silverlight 4“ bei Addison-Wesley von video2brain. Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). Sie erreichen seinen Blog unter www.dotnet-blog.net.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -