Что более интересно, тот же самый редактор позволяет конфигурировать и градиентные кисти, которые применяются для определения последовательностей цветов и точек перехода цветов. Вспомните, что редактор кистей предлагает набор вкладок, первая из которых позволяет установить
Щелкните на вкладке градиентной кисти; редактор отобразит несколько новых настроек (рис. 26.6).
Три кнопки в левом нижнем углу позволяют выбрать линейный градиент, радиальный градиент или обратить градиентные переходы. Полоса внизу покажет текущий цвет каждого градиентного перехода, который будет представлен специальным ползунком. Перетаскивая ползунок по полосе градиента, можно управлять смещением градиента. Кроме того, щелкая на конкретном ползунке, можно изменять цвет определенного градиентного перехода с помощью селектора цвета. Наконец, щелчок прямо на полосе градиента позволяет добавлять градиентные переходы.
Потратьте некоторое время на освоение этого редактора, чтобы построить радиальную градиентную кисть, содержащую три градиентных перехода, и установить их цвета. На рис. 26.6 показан пример кисти, использующей три оттенка зеленого цвета.
В результате IDE-среда обновит разметку XAML, добавив набор специальных кистей и присвоив их совместимым с кистями свойствам (свойство Fill
Ellipse в рассматриваемом примере) с применением синтаксиса "свойство-элемент":
Конфигурирование кистей в коде
Теперь, когда вы построили специальную кисть для определения XAML элемента Ellipse, соответствующий код C# устарел в том плане, что он по-прежнему будет визуализировать круг со сплошным зеленым цветом. Для восстановления синхронизации модифицируйте нужный оператор case
Color посредством класса System.Windows.Media.ColorConverter (результат изменения представлен на рис. 26.7):case SelectedShape.Circle:
shapeToRender = new Ellipse { Height = 35, Width = 35 };
// Создать кисть RadialGradientBrush в коде.
RadialGradientBrush brush = new RadialGradientBrush;
brush.GradientStops.Add(new GradientStop(
(Color)ColorConverter.ConvertFromString("#FF77F177"), 0));
brush.GradientStops.Add(new GradientStop(
(Color)ColorConverter.ConvertFromString("#FF11E611"), 1));
brush.GradientStops.Add(new GradientStop(
(Color)ColorConverter.ConvertFromString("#FF5A8E5A"), 0.545));
shapeToRender.Fill = brush;
break;
Кстати, объекты GradientStop
Colors, которое дает сконфигурированный объект Color:GradientStop g = new GradientStop(Colors.Aquamarine, 1);
Если требуется более тонкий контроль, то можно передавать объект Color
Color myColor = new Color { R = 200, G = 100, B = 20, A = 40 };
GradientStop g = new GradientStop(myColor, 34);
Разумеется, использование перечисления Colors
Color не ограничивается градиентными кистями. Их можно применять всякий раз, когда необходимо представить значение цвета в коде.Конфигурирование перьев
В сравнении с кистями перо представляет собой объект для рисования границ геометрических объектов или в случае класса Line
PolyLine — самого линейного геометрического объекта. В частности, класс Pen позволяет рисовать линию указанной толщины, представленной значением типа double. Вдобавок объект Pen может быть сконфигурирован с помощью того же самого вида свойств, что и в классе Shape, таких как начальный и конечный концы пера, шаблоны точек-тире и т.д. Например, для определения атрибутов пера к определению фигуры можно добавить следующую разметку: StartLineCap="Round" />
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT