Практическое руководство. Закраска области с помощью системной кисти

Класс 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>

Пример, показывающий использование системных цветов в градиентной заливке см. в разделе Использование системных цветов в градиентной заливке.

См. также