Кисти

27

Кисти заполняют области — будь то фон, передний план или граница элемента, или штрих фигуры. Простейшим типом кисти является SolidColorBrush, которая рисует сплошным цветом. Когда в XAML-разметке устанавливается свойство Stroke или Fill фигуры, в действие вступает кисть SolidColorBrush. Ниже перечислено несколько фундаментальных фактов, связанных с кистями:

Хотя кисть SolidColorBrush, безусловно, удобна, существует несколько других классов кистей, унаследованных от System.Windows.Media.Brush, которые предлагают ряд экзотических эффектов. Все они перечислены ниже:

SolidColorBrush

Рисует область с использованием одного сплошного цвета

RadialGradientBrush

Рисует область с использованием радиального градиентного заполнения, подобного линейному, но с тем отличием, что переход формируется в радиальном направлении от центральной точки

LinearGradientBrush

Рисует область с использованием линейного градиентного заполнения, представляющего собой плавный переход от одного цвета к другому (и дополнительно к следующему, потом еще к одному и т.д.)

ImageBrush

Рисует область с использованием графического изображения, которое может растягиваться, масштабироваться или многократно повторяться

DrawingBrush

Рисует область с использованием объект Drawing. Этот объект может включать определенные вами фигуры и растровые изображения

VisualBrush

Рисует область с использованием объекта Visual. Поскольку все элементы WPF наследуются от класса Visual, эту кисть можно применять для копирования части пользовательского интерфейса (такого как поверхность кнопки) в другую область. Удобно для создания забавных эффектов вроде частичного отражения

BitmapCacheBrush

Рисует область с использованием кэшированного содержимого из объекта Visual. Это делает его похожим на VisualBrush, но этот класс более эффективен, если графическое содержимое должно повторно использоваться во множестве мест либо часто перерисовываться

SolidColorBrush

Объекты SolidColorBrush уже демонстрировались в работе с элементами управления. В большинстве элементов управления установка свойства Foreground задает цвет текста, а свойства Background — цвет пространства вокруг него. Фигуры используют сходные, но другие свойства: Stroke — для рисования контура фигуры и Fill — для рисования ее внутренности.

Как было показано ранее, свойства Stroke и Fill можно устанавливать в XAML-разметке, используя имена цветов — в этом случае анализатор WPF автоматически создает соответствующий объект SolidColorBrush. Установить Stroke и Fill можно также в коде, но в этом случае объект SolidColorBrush придется создавать явно:

// Создать кисть из именованного цвета
cmd.Background = new SolidColorBrush(Colors.AliceBlue) ;
// Создать кисть из системного цвета
cmd.Background = SystemColors.ControlBrush;
// Создать кисть на основе значений цвета
int red = 0; int green = 255; int blue = 0;
cmd.Foreground = new SolidColorBrush(Color.FromRgb(red, green, blue));
Пройди тесты
Лучший чат для C# программистов