Стили

Последнее обновление: 31.10.2015

Стили применяются для создания единообразного отображения элементов, также они упрощают подключения группы ресурсов к отдельным элементам. Например:

<Page
    x:Class="HelloApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:HelloApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Page.Resources>
        <Style x:Key="MagentaGray" TargetType="Button">
            <Setter Property="FontFamily" Value="Arial" />
            <Setter Property="Background" Value="DarkGray" />
            <Setter Property="Foreground" Value="DarkMagenta" />
        </Style>
        <Style x:Key="GrayMagenta" TargetType="Button">
            <Setter Property="FontFamily" Value="Arial" />
            <Setter Property="Background" Value="DarkMagenta" />
            <Setter Property="Foreground" Value="DarkGray" />
        </Style>
    </Page.Resources>
    <Grid>
        <StackPanel>
            <Button x:Name="button1" Content="Стиль 1" Style="{StaticResource MagentaGray}" Click="Button_Click" />
            <Button x:Name="button2" Content="Стиль 2" Style="{StaticResource MagentaGray}" Click="Button_Click" />
        </StackPanel>
    </Grid>
</Page>

Фактически стиль также является ресурсом и определяется в коллекции ресурсов элемента. Стиль создается с помощью объекта Style. Затем указывается его ключ и тип, элементов, к которым он относится (свойство TargetType). Внутри стиля создаются объекты Setter. Они определяют свойства, подлежащие стилизации, и передаваемые им значения. Свойство Property имеет следующий синтаксис: Property="Свойство_элемента".

В данном случае мы определили два стиля. Теперь с помощью кнопок создадим логику переключения стилей. Для этого добавим в код c# следующий обработчик:

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = (Button)sender;
    if(button.Name=="button1")
    {
        button1.Style = (Style)this.Resources["MagentaGray"];
        button2.Style = (Style)this.Resources["MagentaGray"];
    }
    else if (button.Name == "button2")
    {
        button1.Style = (Style)this.Resources["GrayMagenta"];
        button2.Style = (Style)this.Resources["GrayMagenta"];
    }
}

Теперь по умолчанию к кнопкам будет применен первый стиль:

После нажатия на вторую кнопку мы сможем переключиться ко второму стилю:

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850