Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
И снова следует отметить, что вам очень редко придется вручную строить или анализировать строковый литерал, содержащий инструкции мини-языка моделирования путей. Тем не менее, цель в том, чтобы разметка XAML, генерируемая специализированными инструментами, не казалась вам совершенно непонятной.
Кисти и перья WPF
Каждый способ графической визуализации (фигуры, рисование и геометрические объекты, а также визуальные объекты) интенсивно использует кисти, которые позволяют управлять заполнением внутренней области двумерной фигуры. Инфраструктура WPF предлагает шесть разных типов кистей, и все они расширяют класс
System.Windows.Media.Brush
Brush

Классы
DrawingBrush
VisualBrush
Drawing
Visual
Класс
ImageBrush
ImageSource
LinearGradientBrush
RadialGradientBrush
Конфигурирование кистей с использованием Visual Studio
Давайте обновим приложение WPF для рисования
RenderingShapes
Ellipse
Fill

В верхней части редактора кистей находится набор свойств, которые являются "совместимыми с кистью" для выбранного элемента (т.е.
Fill
Stroke
OpacityMask
Fill
Ellipse
<Ellipse Fill="#FF47CE47" Height="35" Width="35" />
Что более интересно, тот же самый редактор позволяет конфигурировать и градиентные кисти, которые применяются для определения последовательностей цветов и точек перехода цветов. Вспомните, что редактор кистей предлагает набор вкладок, первая из которых позволяет установить пустую кисть для отсутствующего визуализированного вывода. Остальные четыре дают возможность установить кисть сплошного цвета (как только что было показано), градиентную кисть, мозаичную кисть и кисть с изображением.
Щелкните на вкладке градиентной кисти; редактор отобразит несколько новых настроек (рис. 26.6).

Три кнопки в левом нижнем углу позволяют выбрать линейный градиент, радиальный градиент или обратить градиентные переходы. Полоса внизу покажет текущий цвет каждого градиентного перехода, который будет представлен специальным ползунком. Перетаскивая ползунок по полосе градиента, можно управлять смещением градиента. Кроме того, щелкая на конкретном ползунке, можно изменять цвет определенного градиентного перехода с помощью селектора цвета. Наконец, щелчок прямо на полосе градиента позволяет добавлять градиентные переходы.
Потратьте некоторое время на освоение этого редактора, чтобы построить радиальную градиентную кисть, содержащую три градиентных перехода, и установить их цвета. На рис. 26.6 показан пример кисти, использующей три оттенка зеленого цвета.
В результате IDE-среда обновит разметку XAML, добавив набор специальных кистей и присвоив их совместимым с кистями свойствам (свойство
Fill
Ellipse
<Ellipse Height="35" Width="35">
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color="#FF17F800"/>
<GradientStop Color="#FF24F610" Offset="1"/>
<GradientStop Color="#FF1A6A12" Offset="0.546"/>
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
Конфигурирование кистей в коде
Теперь, когда вы построили специальную кисть для определения XAML элемента Ellipse, соответствующий код C# устарел в том плане, что он по-прежнему будет визуализировать круг со сплошным зеленым цветом. Для восстановления синхронизации модифицируйте нужный оператор
case
Color
System.Windows.Media.ColorConverter