Практическое руководство. Заливка области с помощью системной кисти
SystemColors Класс предоставляет доступ к системным кистям и цветам, такие как ControlBrush, ControlBrushKey, и DesktopBrush. Системная кисть — это SolidColorBrush объект, который закрашивает область с помощью указанного системного цвета. Системная кисть всегда дает сплошную заливку; ее нельзя использовать для создания градиентной заливки.
Системные кисти можно использовать как статический или динамический ресурс. Используйте динамический ресурс, если нужно автоматическое обновление кисти при изменении пользователем кисти во время выполнения приложения; в противном случае используйте статический ресурс. Класс SystemColors содержит разнообразные статические свойства, которые следуют строгому правилу именования:
<SystemColor> Brush
Возвращает статическую ссылку на SolidColorBrush указанного системного цвета.
<SystemColor> BrushKey
Возвращает динамическую ссылку SolidColorBrush указанного системного цвета.
<SystemColor> Color
Возвращает статическую ссылку на Color структуру указанного системного цвета.
<SystemColor> ColorKey
Возвращает динамическую ссылку Color структуру указанного системного цвета.
Системный цвет является Color структуры, который может использоваться для настройки кисти. Например, можно создать с помощью системных цветов, задав градиент Color свойства LinearGradientBrush градиента объекта с системными цветами. Например, см. в разделе использование системных цветов в градиенте.
Пример
В следующем примере используется динамическая ссылка на системную кисть для установки фона кнопки.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="SystemColors Example" Background="White">
<StackPanel Margin="20">
<!-- Uses a dynamic resource to set the
background of a button.
If the desktop brush changes while this application
is running, this button will be updated. -->
<Button
Background="{DynamicResource {x:Static SystemColors.DesktopBrushKey}}"
Content="Hello, World!" />
</StackPanel>
</Page>
В следующем примере используется статическая ссылка на системную кисть для установки фона кнопки.
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="SystemColors Example" Background="White">
<StackPanel Margin="20">
<!-- Uses a static brush to set the
background of a button.
If the desktop brush changes while this application
is running, this button will not be updated until
the page is loaded again. -->
<Button
Background="{x:Static SystemColors.DesktopBrush}"
Content="Hello, World!" />
</StackPanel>
</Page>
Пример, демонстрирующий использование системных цветов в градиенте, см. в разделе использование системных цветов в градиенте.