Практическое руководство. Закраска области с помощью системной кисти
Класс 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>
Пример, показывающий использование системных цветов в градиентной заливке см. в разделе Использование системных цветов в градиентной заливке.
См. также
.NET Desktop feedback