Styles das CSS für Windows 8 XAML

Die Verwendung von Styles ist in Windows 8 kaum anders als in Silverlight und vermutlich WPF. Mit Hilfe des Style Attributes kann der XAML Code in einer Page reduziert werden. Das wesentlich schlagkräftigere Argument wird aber die Wiederverwendung einer Style Vorlage sein. So kann man zb ein UIElement einmalig Designen und dann immer wieder verwenden. In der Datei StandardStyles.xaml befinden sich Z.B. die runden Buttons die man in der AppBar oft verwendet.

image

Einem Textblock Steuerelement kann so per Deklaration mit dem Schlüsselword StaticResource eine Vorlage (auch Theme) zugewiesen werden.

Die Definition der Vorlage kann in der XAML Page direkt, der APP.XAML oder meist in einem Ressource Dictionary vorgenommen werden. Dort werden ein Style für ein UIElement definiert und die Eigenschaften per Setter direkt gesetzt. Wichtig ist der Zieltyp.

Ein weiterer Style kann mittels BasedOn von einem anderen Style die Setter sozusagen erben.

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1">
    <Style x:Key="demo1" TargetType="TextBlock">
        <Setter Property="FontSize" Value="16"></Setter>
    </Style>
    <Style x:Key="demo2" TargetType="TextBlock" BasedOn="{StaticResource demo1}">
        <Setter Property="FontFamily" Value="Impact"></Setter>
    </Style>
</ResourceDictionary>

Dann muss das Dictionary in der app.xaml der Anwendung hinzugefügt werden.

<Application
    x:Class="App1.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    xmlns:localData="using:App1.Data">

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                 <ResourceDictionary Source="Common/StandardStyles.xaml"/>
                <ResourceDictionary Source="Dictionary1.xaml"/>
            </ResourceDictionary.MergedDictionaries>

Themes gibt es übrigens in Windows 8 styled Apps (METRO) wirklich. Sie heißen dark und light und sind in per Windows 8 System in C:\Program Files (x86)\Windows Kits\8.0\Include\winrt\xaml\design\ definiert.

Die Zuweisung erfolgt im ersten Element der app.xaml per RequestedTheme="Light".

Kommentare sind geschlossen