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

Обновлен: Ноябрь 2007

Класс SystemColors предоставляет доступ к системной кисти и системным цветам, таким как ControlBrush, ControlBrushKey и DesktopBrush. Системная кисть является объектом SolidColorBrush, закрашивающим область указанным системным цветом. Системная кисть всегда дает сплошную заливку; она не может использоваться для создания градиентной заливки.

Можно использовать системные кисти либо как статические, либо как динамические ресурсы. Динамические ресурсы используются при необходимости автоматического обновления кисти, если пользователь изменяет системную кисть во время выполнения приложения; в противном случае используются статические ресурсы. Класс SystemColors содержит разнообразные статические свойства, которые следуют строгому правилу именования:

  • *<SystemColor>*Brush

    Получает статическую ссылку на SolidColorBrush указанного системного цвета.

  • *<SystemColor>*BrushKey

    Получает динамическую ссылку на SolidColorBrush указанного системного цвета.

  • *<SystemColor>*Color

    Получает статическую ссылку на структуру Color указанного системного цвета.

  • *<SystemColor>*ColorKey

    Получает динамическую ссылку на структуру Color указанного системного цвета.

Системный цвет представляет собой структуру Color, которая может быть использована для настройки кисти. Например, можно создать градиент с помощью системных цветов, задав свойства Color градиента объекта LinearGradientBrush с системными цветами. Пример см. в разделе Практическое руководство. Использование системных цветов в градиенте.

Пример

В следующем примере используется динамическая ссылка системной кисти для установки фона кнопки.

<Page xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="https://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="https://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="https://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>

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

См. также

Задачи

Пример использования системных кистей и цветов

Практическое руководство. Использование системных цветов в градиенте

Основные понятия

Общие сведения о закраске сплошным цветом и градиентом