Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
<b> установленный в свойстве Data --></b>
<Path Fill = "Orange" Stroke = "Blue" StrokeThickness = "3">
<Path.Data>
<GeometryGroup>
<EllipseGeometry Center = "75,70" RadiusX = "30" RadiusY = "30" />
<RectangleGeometry Rect = "25,55 100 30" />
<LineGeometry StartPoint="0,0" EndPoint="70,30" />
<LineGeometry StartPoint="70,30" EndPoint="0,30" />
</GeometryGroup>
</Path.Data>
</Path>

Изображение на рис. 26.3 может быть визуализировано с применением показанных ранее классов
Line
Ellipse
Rectangle
UIElement
Path
Теперь вспомните, что класс
Path
System.Windows.Shapes
UIElement
<Path>
"Мини-язык" моделирования путей
Из всех классов, перечисленных в табл. 26.3, класс
PathGeometry
PathGeometry
ArcSegment
BezierSegment
LineSegment
PolyBezierSegment
PolyLineSegment
PolyQuadraticBezierSegment
Path
Data
PathGeometry
<Path Stroke="Black" StrokeThickness="1" >
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="10,50">
<PathFigure.Segments>
<BezierSegment
Point1="100,0"
Point2="200,200"
Point3="300,100"/>
<LineSegment Point="400,100" />
<ArcSegment
Size="50,50" RotationAngle="45"
IsLargeArc="True" SweepDirection="Clockwise"
Point="200,100"/>
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
По правде говоря, лишь немногим программистам придется когда-либо вручную строить сложные двумерные изображения, напрямую описывая объекты производных от
Geometry
PathSegment
Даже с учетом содействия со стороны упомянутых ранее инструментов объем разметки XAML, требуемой для определения сложных объектов
Path
Geometry
PathSegment
Path
Например, вместо установки свойства
Data
Path
Geometry
PathSegment
<Path Stroke="Black" StrokeThickness="3"
Data="M 10,75 C 70,15 250,270 300,175 H 240" />

Команда
М
х
у
С
Н