Поделиться через


SolidColorBrush Класс

Определение

Закрашивает область сплошным цветом. Сплошной цвет определяется значением Color .

public ref class SolidColorBrush sealed : Brush
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Media.ISolidColorBrushFactory, 65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
class SolidColorBrush final : Brush
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
/// [Windows.Foundation.Metadata.Activatable(Windows.UI.Xaml.Media.ISolidColorBrushFactory, 65536, "Windows.Foundation.UniversalApiContract")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class SolidColorBrush final : Brush
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Media.ISolidColorBrushFactory), 65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
public sealed class SolidColorBrush : Brush
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="Color")]
[Windows.Foundation.Metadata.Activatable(typeof(Windows.UI.Xaml.Media.ISolidColorBrushFactory), 65536, "Windows.Foundation.UniversalApiContract")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class SolidColorBrush : Brush
Public NotInheritable Class SolidColorBrush
Inherits Brush
<SolidColorBrush .../>
-or-
<SolidColorBrush>colorString</SolidColorBrush>
- or -
<SolidColorBrush Color="predefinedColorName"/>
- or -
<SolidColorBrush Color="#rgb"/>
- or -
<SolidColorBrush Color="#argb"/>
- or -
<SolidColorBrush Color="#rrggbb"/>
- or -
<SolidColorBrush Color="#aarrggbb"/>
- or -
<SolidColorBrush Color="sc#scR,scG,scB"/>
- or -
<SolidColorBrush Color="sc#scA,scR,scG,scB"/>
Наследование
Object Platform::Object IInspectable DependencyObject Brush SolidColorBrush
Атрибуты

Требования к Windows

Семейство устройств
Windows 10 (появилось в 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v1.0)

Примеры

Наиболее распространенным способом использования SolidColorBrush является определение элемента XAML в качестве ресурса в ResourceDictionary, а затем ссылка на этот ресурс из других частей определений пользовательского интерфейса, стилей или шаблонов с помощью расширения разметки {StaticResource} или расширения разметки {ThemeResource} .

<ResourceDictionary>
...
    <SolidColorBrush x:Key="BlockBackgroundBrush" Color="#FF557EB9"/>
...
</ResourceDictionary>
<Border Background="{StaticResource BlockBackgroundBrush}" 
    Width="80" Height="80"/>

Существует несколько способов определения SolidColorBrush как встроенного значения пользовательского интерфейса, а не как ресурса.

  • Выберите предопределенный цвет по имени и полагайтесь на "ярлык" XAML, что этот цвет создаст SolidColorBrush при его анализе. Например, можно задать для параметра Заливкапрямоугольника значение "Красный", как показано ниже:
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a red SolidColorBrush,
       described using a named color. -->
  <Rectangle Width="100" Height="100" Fill="Red" />
</Canvas>
  • Выберите пользовательский цвет из 24-разрядного диапазона цветов, состоящего из выбранных объемов красного, зеленого и синего, с помощью шестнадцатеричного кода цвета RGB:
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a Red SolidColorBrush,
       described using an RGB-style hex color code. -->
  <Rectangle Width="100" Height="100" Fill="#FF0000" />
</Canvas>
  • Можно также указать пользовательский цвет с указанной непрозрачностью, задав для требуемого свойства код цвета ARGB в шестнадцатеричном формате:
<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

  <!-- This rectangle's fill is painted with a fully opaque red SolidColorBrush,
       described using an ARGB style hex code. -->
  <Rectangle Width="100" Height="100" Fill="#FFFF0000" />
</Canvas>

Кисти сплошного цвета можно создать в коде программной части, создав экземпляр объекта SolidColorBrush с предопределенным цветом из структуры Colors .

SolidColorBrush greenBrush = new SolidColorBrush(Colors.Green);
Windows::UI::Xaml::Media::SolidColorBrush greenBrush{ Windows::UI::Colors::Green() };
auto greenBrush = ref new SolidColorBrush(Colors::Green);

Другой способ определить новый объект SolidColorBrush — использовать статический служебный метод FromArgb . Это полезно, если для нужного цвета отсутствует именованное значение Colors .

SolidColorBrush myBrush = new SolidColorBrush(Color.FromArgb(255, 20, 20, 90));
Windows::UI::Xaml::Media::SolidColorBrush myBrush{ Windows::UI::ColorHelper::FromArgb(255, 90, 200, 90) };
auto myBrush = ref new SolidColorBrush(ColorHelper::FromArgb(255, 90, 200, 90));

Комментарии

SolidColorBrush — это наиболее распространенный тип brush , который используется для многих возможных свойств пользовательского интерфейса, которые используют кисть для заполнения части или всей визуальной области объекта в пользовательском интерфейсе приложения. Примеры некоторых наиболее часто используемых свойств, использующих значение Brush : Control.Background, Control.Foreground, Shape.Fill, Control.BorderBrush, Panel.Background, TextBlock.Foreground.

Для этих свойств часто допустимо значение NULL , в результате чего ничего не отображается. Если элемент отображается в том же пространстве координат, что и другие элементы, значение NULL для свойства , например Background , приводит к тому, что этот элемент не регистрируется для целей проверки попадания и определяет, откуда следует получить входное событие. Любые события указателя, жесты и т. д., происходящие в этой точке в пространстве координат пользовательского интерфейса, обнаруживаются только при наличии значения , отличного от NULL для свойства Brush , которое влияет на отрисовку для этой точки.

Можно создать SolidColorBrush, использующий значение Transparent , и хотя это не применяет визуальные изменения к пользовательскому интерфейсу (он прозрачный), эту точку можно обнаружить для проверки попадания. Таким образом, это отличается от свойства Brush со значением NULL . Прозрачная кисть может быть полезна для таких методов, как создание областей наложения над элементами пользовательского интерфейса, где требуется перехватить проверку попадания с помощью таких элементов, как Rectangle, Border или панель. Это можно сделать, если элементы под ним не могут выполнить собственное тестирование попадания, но вы по-прежнему хотите обнаруживать события ввода. Дополнительные сведения о тестировании нажатия см. в разделе "Проверка нажатия" статьи Взаимодействие с мышью.

Свойства с помощью кистей можно анимировать как часть переходов или декоративных анимаций. Как правило, вы не анимируйте весь объект SolidColorBrush, вам придется использовать дискретную анимацию объекта , и это не является ни эффективным, ни эстетическим. Вместо этого вы используете нацеливание на свойства, чтобы анимировать только значение Color , используя один из выделенных типов анимации, которые могут анимировать значение Color . Обычно для этого .(SolidColorBrush.Color) требуется быть частью значения Storyboard.TargetProperty . Дополнительные сведения о нацеливание на свойства и о том, как анимировать свойства, использующие SolidColorBrush или другие значения Brush , см. в разделе Раскадровки анимации.

Объект SolidColorBrush является общим объектом, как и другие производные типы Brush , такие как LinearGradientBrush и ImageBrush. Так как он является общим, SolidColorBrush иногда определяется в XAML как ресурс в XAML ResourceDictionary. Преимущество использования общих ресурсов из XAML заключается в том, что вы создаете значение только один раз и применяете его к нескольким свойствам.

Применение значения UIElement.Opacity может изменить цвет свойства SolidColorBrush, примененного к объекту. Значение UIElement.Opacity может быть накопительным в зависимости от макета перекрывающихся объектов. Цвета отображаются ожидаемым образом, только если чистое значение Opacity равно 1. Существует также свойство Brush.Opacity , которое может повлиять на видимый цвет аналогичным образом. Brush.Opacity обычно остается со значением по умолчанию 1, если только оно не анимируется намеренно для эффекта затухания или исчезания.

Кисти как ресурсы XAML

Каждый из типов кистей , которые можно объявить в XAML (SolidColorBrush, LinearGradientBrush, ImageBrush), должен быть определен как ресурс, чтобы вы могли повторно использовать эту кисть в качестве ресурса в приложении. Синтаксис XAML, показанный для типов кистей , подходит для определения кисти в качестве ресурса. При объявлении кисти в качестве ресурса также требуется атрибут x:Key , который позже будет использоваться для ссылки на этот ресурс из других определений пользовательского интерфейса. Дополнительные сведения о ресурсах XAML и использовании атрибута x:Key см. в разделе Ссылки на ресурсы ResourceDictionary и XAML.

Преимущество объявления кистей в качестве ресурсов заключается в том, что оно сокращает количество объектов среды выполнения, необходимых для создания пользовательского интерфейса. Теперь кисть является общим ресурсом, предоставляющим значения для нескольких частей графа объектов.

Если взглянуть на существующие определения шаблонов элементов управления для среда выполнения Windows элементов управления XAML, вы увидите, что шаблоны широко используют ресурсы кистей. Многие из этих ресурсов являются системными, и они используют расширение разметки {ThemeResource} для ссылки на ресурс, а не расширение разметки {StaticResource}. Дополнительные сведения об использовании кистей системных ресурсов в XAML-коде шаблона элемента управления см. в разделе Ресурсы темы XAML.

Конструкторы

SolidColorBrush()

Инициализирует новый экземпляр класса SolidColorBrush без цвета.

SolidColorBrush(Color)

Инициализирует новый экземпляр класса SolidColorBrush с указанным color.

Свойства

Color

Возвращает или задает цвет объекта SolidColorBrush.

ColorProperty

Идентифицирует свойство зависимости Color .

Dispatcher

Возвращает объект CoreDispatcher , с которым связан этот объект. CoreDispatcher представляет собой средство, которое может получить доступ к DependencyObject в потоке пользовательского интерфейса, даже если код инициируется потоком, не относящегося к пользовательскому интерфейсу.

(Унаследовано от DependencyObject)
Opacity

Возвращает или задает степень непрозрачности кисти.

(Унаследовано от Brush)
RelativeTransform

Возвращает или задает преобразование, которое применяется к кисти с использованием относительных координат.

(Унаследовано от Brush)
Transform

Получает или задает преобразование, которое применяется к кисти.

(Унаследовано от Brush)

Методы

ClearValue(DependencyProperty)

Очищает локальное значение свойства зависимостей.

(Унаследовано от DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Возвращает любое базовое значение, установленное для свойства зависимостей, которое применяется в случаях, когда анимация не активна.

(Унаследовано от DependencyObject)
GetValue(DependencyProperty)

Возвращает текущее действующее значение свойства зависимостей из DependencyObject.

(Унаследовано от DependencyObject)
PopulatePropertyInfo(String, AnimationPropertyInfo)

Определяет свойство, которое можно анимировать.

(Унаследовано от Brush)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

При переопределении в производном классе определяет свойство, которое можно анимировать.

(Унаследовано от Brush)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если задано локальное значение.

(Унаследовано от DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Регистрирует функцию уведомления для прослушивания изменений определенного DependencyProperty в этом экземпляре DependencyObject .

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей для Объекта DependencyObject.

(Унаследовано от DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Отменяет уведомление об изменениях, которое было ранее зарегистрировано путем вызова Метода RegisterPropertyChangedCallback.

(Унаследовано от DependencyObject)

Применяется к

См. также раздел