原文:在WPF中自定义你的绘制(四)

                                  在WPF中自定义你的绘制(四)
                                                              周银辉

1,利用路径绘制图形(PathGeometry)
有时我们需要绘制的图形可能很复杂而显得不是那么的规则,这时我们就需要将图形分解成若干小的部分(分解成线段、圆弧、贝塞尔曲线等等),然后将这些小部分使用PathGeometry组合在一起实现最终的绘制。
一个PathGeometry对象有若干个PathFingure对象组成并保存在其Fingures属性中,一个PathFingure对象有若干个PathSegment对象组成并保存在其Segments属性中,而PathSegment则表示一些最基本的曲线和线段。继承了PathSegment的类主要有:LineSegment直线段,ArcSegment弧线段,BezierSegment贝塞尔曲线段等。反过来说,我们由一些基本的曲线和线段相互连接而组成PathFingure(可以看着一个独立的子图形),然后我们再由若干个PathFingure构成最终的复杂图形。
参考如下代码:

<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Path Stroke="Black" StrokeThickness="1">
        <Path.Data>
            <PathGeometry>
                <PathGeometry.Figures>
                    <PathFigureCollection>
                        <PathFigure StartPoint="100,50" >
                            <PathFigure.Segments>
                                <PathSegmentCollection>
                                    <LineSegment Point="200,50" />
                                    <LineSegment Point="150,100" />
                                </PathSegmentCollection>
                            </PathFigure.Segments>
                        </PathFigure>
                    </PathFigureCollection>
                </PathGeometry.Figures>
            </PathGeometry>
        </Path.Data>
    </Path>
</Page>

在上面的代码中,我们定义了一个图形,它由一个PathFingure组成,改PathFingure的起点是(100,50),假设我们使用一支笔来绘制该PathFingure,那么我们现在得将笔头移动到点(200,50),在起点和该点之间绘制一个LineSegment,然后将笔头移动到(150,100),在上一次绘制的终点即(200,50)和改点之间绘制一个LineSegment,便得到了下图中的图形:

之所以会产生这样的结果,请注意理解这句话“我们由一些基本的曲线和线段相互连接而组成PathFingure(可以看着一个独立的子图形)"。我们有权利选择这样的相互链接的曲线是否闭合(即将起点和终点用直线段连接起来),我们只需要将PahtFigure的IsClosed属性设置为True或False就可以了。如果我们将上面代码中的<PathFigure StartPoint="100,50" >
修改为<PathFigure StartPoint="100,50" IsClosed="True" >,那么将会得到如下图形:

就这样,我们使用多个PathFigure分别负责图形中的子图形并选择合适的颜色与填充方式,就可以绘制出最终的复杂图形,你能相信下面这么漂亮的图形就是这样绘制出来的吗?

你可以粘贴下面的代码到XamlPad到查看:

上面复杂图形的代码
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2006" c:Ignorable="d" x:Name="SpaceCute_Tokens_design" Width="800" Height="800">
        <Canvas x:Name="Background" d:IsLayer="True" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
            <Rectangle x:Name="Rectangle" Width="801" Height="801" Canvas.Left="-0.500021" Canvas.Top="-0.5" Stretch="Fill" StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FF5C7F71"/>
        </Canvas>
        <Canvas x:Name="Ship" d:IsLayer="True" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
            <Ellipse x:Name="Ellipse" Width="178.695" Height="17.5563" Canvas.Left="57.9088" Canvas.Top="595.542" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.573661" RadiusY="0.518142" Center="0.5,0.499998" GradientOrigin="0.5,0.499998">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#8FFFFEB8" Offset="0"/>
                            <GradientStop Color="#00FF5F1E" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Ellipse x:Name="Ellipse_0" Width="178.695" Height="17.5563" Canvas.Left="57.9088" Canvas.Top="444.163" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.573661" RadiusY="0.518147" Center="0.5,0.500001" GradientOrigin="0.5,0.500001">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#8FFFFEB8" Offset="0"/>
                            <GradientStop Color="#00FF5F1E" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Viewbox x:Name="Group" Width="200.264" Height="62.7319" Canvas.Left="142.45" Canvas.Top="421.207">
                <Canvas Width="200.264" Height="62.7319">
                    <Path x:Name="Path" Width="11.731" Height="25.6144" Canvas.Left="0" Canvas.Top="17.9509" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF3E3E3E" Data="F1 M 10.1172,19.4509L 1.5,21.2192L 1.5,40.5689L 10.231,42.0653L 10.1172,19.4509 Z ">
                        <Path.Fill>
                            <LinearGradientBrush StartPoint="0.689922,0.114267" EndPoint="0.689922,0.905237">
                                <LinearGradientBrush.GradientStops>
                                    <GradientStop Color="#FF585858" Offset="0.0169492"/>
                                    <GradientStop Color="#FF8E8E8E" Offset="0.182203"/>
                                    <GradientStop Color="#FF585858" Offset="0.516949"/>
                                    <GradientStop Color="#FF464544" Offset="1"/>
                                </LinearGradientBrush.GradientStops>
                            </LinearGradientBrush>
                        </Path.Fill>
                    </Path>
                    <Path x:Name="Path_1" Width="192.147" Height="62.7319" Canvas.Left="8.11722" Canvas.Top="0" Stretch="Fill" StrokeThickness="4" StrokeLineJoin="Round" Stroke="#FF3A3735" Fill="#FF817E7C" Data="F1 M 104.475,2C 127.792,2 176.411,18.5041 198.264,33.5286C 178.421,45.0246 130.518,60.7319 105.841,60.7319C 81.1646,60.7319 17.7283,49.5626 10.231,42.0653C 10.231,37.5212 10.1172,25.2942 10.1172,19.4509C 18.5257,11.0424 81.1589,2 104.475,2 Z "/>
                    <Path x:Name="Path_2" Width="179.331" Height="34.8774" Canvas.Left="13.4322" Canvas.Top="5.37793" Stretch="Fill" Fill="#FFB09F99" Data="F1 M 103.324,5.37909C 126.089,5.22733 171.936,19.9673 192.763,33.2603C 165.446,39.9026 129.236,40.2554 104.683,40.2554C 80.1292,40.2554 25.7741,36.2799 13.4443,30.6806C 13.4082,27.3865 13.4642,23.2401 13.4642,20.7982C 27.1044,12.1894 80.56,5.53088 103.324,5.37909 Z "/>
                    <Path x:Name="Path_3" Width="145.843" Height="14.101" Canvas.Left="16.6681" Canvas.Top="7.72525" Stretch="Fill" Fill="#FFD1B6AB" Data="F1 M 162.511,21.8263C 162.511,21.8263 131.288,13.5681 108.576,13.5681C 78.7388,13.5681 16.6681,21.0106 16.6681,21.0106C 16.6681,21.0106 59.1985,7.72525 105.958,7.72525C 128.972,8.01593 156.236,19.0059 162.511,21.8263 Z "/>
                    <Path x:Name="Path_4" Width="145.276" Height="14.8925" Canvas.Left="15.7732" Canvas.Top="42.2313" Stretch="Fill" Fill="#FF9E9E9E" Data="F1 M 161.048,45.8934C 161.048,45.8934 135.378,53.3298 107.969,53.3298C 80.5595,53.3298 45.1012,47.5755 15.7732,42.2313C 15.7732,42.2313 62.9469,57.1238 110.473,57.1238C 128.609,57.1238 161.351,45.8934 161.048,45.8934 Z "/>
                    <Path x:Name="Path_5" Width="28.2342" Height="4.52205" Canvas.Left="90.6867" Canvas.Top="8.52896" Stretch="Fill" Data="F1 M 104.879,8.58112C 112.675,8.84659 118.962,10.0507 118.921,11.2707C 118.879,12.4905 112.525,13.2643 104.729,12.9988C 96.932,12.7334 90.6453,11.5292 90.6869,10.3094C 90.7284,9.08942 97.0824,8.3157 104.879,8.58112 Z ">
                        <Path.Fill>
                            <RadialGradientBrush RadiusX="0.450586" RadiusY="0.559218" Center="0.5,0.499998" GradientOrigin="0.5,0.499998">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#7CFEFFEF" Offset="0"/>
                                    <GradientStop Color="#00FFFFFF" Offset="1"/>
                                </RadialGradientBrush.GradientStops>
                                <RadialGradientBrush.RelativeTransform>
                                    <TransformGroup>
                                        <SkewTransform CenterX="0.5" CenterY="0.499998" AngleX="3.24417" AngleY="0"/>
                                        <RotateTransform CenterX="0.5" CenterY="0.499998" Angle="-17.9673"/>
                                    </TransformGroup>
                                </RadialGradientBrush.RelativeTransform>
                            </RadialGradientBrush>
                        </Path.Fill>
                    </Path>
                    <Path x:Name="Path_6" Width="31.0251" Height="3.50726" Canvas.Left="88.5359" Canvas.Top="53.8298" Stretch="Fill" Data="F1 M 104.005,53.8762C 112.572,53.6557 119.537,54.2413 119.561,55.1842C 119.585,56.127 112.66,57.0701 104.092,57.2906C 95.5251,57.511 88.5603,56.9255 88.536,55.9826C 88.5117,55.0398 95.4373,54.0967 104.005,53.8762 Z ">
                        <Path.Fill>
                            <RadialGradientBrush RadiusX="0.537186" RadiusY="0.467209" Center="0.5,0.500001" GradientOrigin="0.5,0.500001">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#34FEFFEF" Offset="0"/>
                                    <GradientStop Color="#00FFFFFF" Offset="1"/>
                                </RadialGradientBrush.GradientStops>
                                <RadialGradientBrush.RelativeTransform>
                                    <TransformGroup>
                                        <SkewTransform CenterX="0.5" CenterY="0.500001" AngleX="-11.7476" AngleY="0"/>
                                        <RotateTransform CenterX="0.5" CenterY="0.500001" Angle="-37.409"/>
                                    </TransformGroup>
                                </RadialGradientBrush.RelativeTransform>
                            </RadialGradientBrush>
                        </Path.Fill>
                    </Path>
                </Canvas>
            </Viewbox>
            <Ellipse x:Name="Ellipse_7" Width="74.6667" Height="82.6667" Canvas.Left="104.603" Canvas.Top="406.987" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.573661" RadiusY="0.518145" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#8FFFB500" Offset="0"/>
                            <GradientStop Color="#00FF5F1E" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Ellipse x:Name="Ellipse_8" Width="557.333" Height="189.332" Canvas.Left="193.845" Canvas.Top="479.558" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.50091" RadiusY="0.50091" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#4A000000" Offset="0"/>
                            <GradientStop Color="#00000000" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Ellipse x:Name="Ellipse_9" Width="205.991" Height="86.9482" Canvas.Left="168.517" Canvas.Top="616.414" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.50091" RadiusY="0.50091" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#16000000" Offset="0"/>
                            <GradientStop Color="#00000000" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Ellipse x:Name="Ellipse_10" Width="205.991" Height="62.2766" Canvas.Left="158.517" Canvas.Top="475.882" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.50091" RadiusY="0.500911" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#3E000000" Offset="0"/>
                            <GradientStop Color="#00000000" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Path x:Name="Path_11" Width="130.111" Height="57.2222" Canvas.Left="180.584" Canvas.Top="451.168" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF3E3E3E" Data="F1 M 226.529,506.89L 309.195,493.019L 247.862,452.668L 182.084,459.603C 182.084,459.603 202.529,458.342 215.862,474.104C 229.195,489.867 227.417,506.89 226.529,506.89 Z ">
                <Path.Fill>
                    <LinearGradientBrush StartPoint="0.537575,0.874622" EndPoint="1.37028,0.874622">
                        <LinearGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.537575" CenterY="0.874622" AngleX="10.8086" AngleY="0"/>
                                <RotateTransform CenterX="0.537575" CenterY="0.874622" Angle="262.931"/>
                            </TransformGroup>
                        </LinearGradientBrush.RelativeTransform>
                        <LinearGradientBrush.GradientStops>
                            <GradientStop Color="#FF464544" Offset="0"/>
                            <GradientStop Color="#FF6F6F6F" Offset="0.110169"/>
                            <GradientStop Color="#FF6D6D6D" Offset="0.923729"/>
                            <GradientStop Color="#FF464544" Offset="1"/>
                        </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_12" Width="13.9266" Height="69.2278" Canvas.Left="211.45" Canvas.Top="470.776" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF3E3E3E" Data="F1 M 223.544,472.276L 212.95,477.454L 212.95,534.121L 223.877,538.503L 223.544,472.276 Z ">
                <Path.Fill>
                    <LinearGradientBrush StartPoint="0.442797,0.0820298" EndPoint="0.442797,0.939104">
                        <LinearGradientBrush.GradientStops>
                            <GradientStop Color="#FF585858" Offset="0.0169492"/>
                            <GradientStop Color="#FF8E8E8E" Offset="0.182203"/>
                            <GradientStop Color="#FF585858" Offset="0.516949"/>
                            <GradientStop Color="#FF464544" Offset="1"/>
                        </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_13" Width="555" Height="176" Canvas.Left="221.544" Canvas.Top="419.17" Stretch="Fill" StrokeThickness="4" StrokeLineJoin="Round" Stroke="#FF131212" Fill="#FF464544" Data="F1 M 499.877,421.17C 568.16,421.17 710.544,469.503 774.543,513.503C 716.432,547.17 576.144,593.17 503.877,593.17C 431.61,593.17 245.833,560.46 223.877,538.503C 223.877,525.196 223.544,489.388 223.544,472.276C 248.168,447.651 431.593,421.17 499.877,421.17 Z "/>
            <Path x:Name="Path_14" Width="533.967" Height="102.141" Canvas.Left="224.466" Canvas.Top="431.062" Stretch="Fill" Fill="#FF585858" Data="F1 M 496.506,431.066C 563.173,430.621 697.44,473.788 758.432,512.717C 678.432,532.17 572.389,533.203 500.484,533.203C 428.578,533.203 260.61,521.561 224.501,505.163C 224.396,495.515 224.56,483.373 224.56,476.221C 264.506,451.01 429.839,431.51 496.506,431.066 Z "/>
            <Path x:Name="Path_15" Width="427.111" Height="41.2958" Canvas.Left="242.728" Canvas.Top="437.936" Stretch="Fill" Fill="#FF6B6B6B" Data="F1 M 669.839,479.232C 669.839,479.232 578.399,455.048 511.885,455.048C 424.506,455.048 242.728,476.843 242.728,476.843C 242.728,476.843 367.281,437.936 504.219,437.936C 571.617,438.788 651.46,470.972 669.839,479.232 Z "/>
            <Path x:Name="Path_16" Width="425.451" Height="43.6136" Canvas.Left="240.107" Canvas.Top="538.99" Stretch="Fill" Fill="#FF525252" Data="F1 M 665.552,549.714C 665.552,549.714 590.377,571.492 510.107,571.492C 429.838,571.492 325.996,554.64 240.107,538.99C 240.107,538.99 378.258,582.603 517.441,582.603C 570.554,582.603 666.441,549.714 665.552,549.714 Z "/>
            <Path x:Name="Path_17" Width="278.667" Height="176" Canvas.Left="497.877" Canvas.Top="419.17" Stretch="Fill" StrokeThickness="4" StrokeLineJoin="Round" Stroke="#FF3A3735" Data="F1 M 499.877,421.17C 576.761,421.17 710.544,469.503 774.543,513.503C 716.432,547.17 579.328,593.17 503.877,593.17">
                <Path.Fill>
                    <LinearGradientBrush StartPoint="0.0304507,0.517971" EndPoint="0.977772,0.517971">
                        <LinearGradientBrush.GradientStops>
                            <GradientStop Color="#FF000000" Offset="0"/>
                            <GradientStop Color="#FE940000" Offset="0.326271"/>
                            <GradientStop Color="#FE947D00" Offset="0.639831"/>
                            <GradientStop Color="#FE889400" Offset="1"/>
                        </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_18" Width="130.111" Height="79.4445" Canvas.Left="184.695" Canvas.Top="529.39" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF3E3E3E" Data="F1 M 230.64,530.89L 313.306,550.445L 251.973,607.334L 186.195,597.556C 186.195,597.556 206.64,599.334 219.973,577.112C 233.306,554.89 231.529,530.89 230.64,530.89 Z ">
                <Path.Fill>
                    <LinearGradientBrush StartPoint="0.537575,0.11958" EndPoint="1.38297,0.11958">
                        <LinearGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.537575" CenterY="0.11958" AngleX="-11.174" AngleY="0"/>
                                <RotateTransform CenterX="0.537575" CenterY="0.11958" Angle="96.9623"/>
                            </TransformGroup>
                        </LinearGradientBrush.RelativeTransform>
                        <LinearGradientBrush.GradientStops>
                            <GradientStop Color="#FF464544" Offset="0"/>
                            <GradientStop Color="#FF585858" Offset="0.110169"/>
                            <GradientStop Color="#FF989893" Offset="0.877119"/>
                            <GradientStop Color="#FF585858" Offset="0.898305"/>
                            <GradientStop Color="#FF464544" Offset="1"/>
                        </LinearGradientBrush.GradientStops>
                    </LinearGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_19" Width="82.6855" Height="13.2431" Canvas.Left="459.496" Canvas.Top="440.29" Stretch="Fill" Data="F1 M 501.059,440.443C 523.891,441.22 542.302,444.746 542.181,448.319C 542.059,451.892 523.451,454.158 500.618,453.38C 477.786,452.603 459.375,449.076 459.496,445.504C 459.618,441.931 478.226,439.665 501.059,440.443 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.450588" RadiusY="0.559228" Center="0.5,0.500001" GradientOrigin="0.5,0.500001">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#7CFEFFEF" Offset="0"/>
                            <GradientStop Color="#00FFFFFF" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.5" CenterY="0.500001" AngleX="3.24314" AngleY="0"/>
                                <RotateTransform CenterX="0.5" CenterY="0.500001" Angle="-17.9679"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_20" Width="90.8587" Height="10.2712" Canvas.Left="453.197" Canvas.Top="572.956" Stretch="Fill" Data="F1 M 498.498,573.092C 523.588,572.447 543.985,574.162 544.056,576.923C 544.127,579.684 523.845,582.446 498.755,583.091C 473.666,583.737 453.269,582.022 453.198,579.261C 453.126,576.5 473.408,573.738 498.498,573.092 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.537183" RadiusY="0.467209" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#34FEFFEF" Offset="0"/>
                            <GradientStop Color="#00FFFFFF" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.5" CenterY="0.5" AngleX="-11.747" AngleY="0"/>
                                <RotateTransform CenterX="0.5" CenterY="0.5" Angle="-37.4085"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
            <Viewbox x:Name="Group_21" Width="200.264" Height="62.7319" Canvas.Left="142.45" Canvas.Top="575.104">
                <Canvas Width="200.264" Height="62.7319">
                    <Path x:Name="Path_22" Width="11.731" Height="25.6144" Canvas.Left="0" Canvas.Top="17.9509" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF3E3E3E" Data="F1 M 10.1172,19.4509L 1.5,21.2192L 1.5,40.5688L 10.231,42.0653L 10.1172,19.4509 Z ">
                        <Path.Fill>
                            <LinearGradientBrush StartPoint="0.689922,0.114267" EndPoint="0.689922,0.905237">
                                <LinearGradientBrush.GradientStops>
                                    <GradientStop Color="#FF585858" Offset="0.0169492"/>
                                    <GradientStop Color="#FF8E8E8E" Offset="0.182203"/>
                                    <GradientStop Color="#FF585858" Offset="0.516949"/>
                                    <GradientStop Color="#FF464544" Offset="1"/>
                                </LinearGradientBrush.GradientStops>
                            </LinearGradientBrush>
                        </Path.Fill>
                    </Path>
                    <Path x:Name="Path_23" Width="192.147" Height="62.7319" Canvas.Left="8.11722" Canvas.Top="0" Stretch="Fill" StrokeThickness="4" StrokeLineJoin="Round" Stroke="#FF363332" Fill="#FF817E7C" Data="F1 M 104.475,2C 127.792,2 176.411,18.5041 198.264,33.5286C 178.421,45.0245 130.518,60.7319 105.841,60.7319C 81.1646,60.7319 17.7283,49.5626 10.231,42.0653C 10.231,37.5212 10.1172,25.2942 10.1172,19.4509C 18.5257,11.0424 81.1589,2 104.475,2 Z "/>
                    <Path x:Name="Path_24" Width="179.331" Height="34.8774" Canvas.Left="13.4322" Canvas.Top="5.37793" Stretch="Fill" Fill="#FFB09F99" Data="F1 M 103.324,5.37909C 126.089,5.22729 171.936,19.9673 192.763,33.2603C 165.446,39.9026 129.236,40.2554 104.683,40.2554C 80.1292,40.2554 25.7741,36.2799 13.4443,30.6805C 13.4082,27.3864 13.4642,23.2401 13.4642,20.7982C 27.1044,12.1894 80.56,5.53082 103.324,5.37909 Z "/>
                    <Path x:Name="Path_25" Width="145.843" Height="14.1011" Canvas.Left="16.6681" Canvas.Top="7.72522" Stretch="Fill" Fill="#FFD1B6AB" Data="F1 M 162.511,21.8263C 162.511,21.8263 131.288,13.5681 108.576,13.5681C 78.7388,13.5681 16.6681,21.0106 16.6681,21.0106C 16.6681,21.0106 59.1985,7.72522 105.958,7.72522C 128.972,8.01593 156.236,19.0059 162.511,21.8263 Z "/>
                    <Path x:Name="Path_26" Width="145.276" Height="14.8925" Canvas.Left="15.7732" Canvas.Top="42.2313" Stretch="Fill" Fill="#FF9E9E9E" Data="F1 M 161.048,45.8934C 161.048,45.8934 135.378,53.3298 107.969,53.3298C 80.5595,53.3298 45.1012,47.5755 15.7732,42.2313C 15.7732,42.2313 62.9469,57.1238 110.473,57.1238C 128.609,57.1238 161.351,45.8934 161.048,45.8934 Z "/>
                    <Path x:Name="Path_27" Width="28.2342" Height="4.52205" Canvas.Left="90.6867" Canvas.Top="8.52896" Stretch="Fill" Data="F1 M 104.879,8.58112C 112.675,8.84662 118.962,10.0507 118.921,11.2706C 118.879,12.4905 112.525,13.2643 104.729,12.9988C 96.932,12.7334 90.6453,11.5292 90.6869,10.3093C 90.7284,9.08942 97.0824,8.31567 104.879,8.58112 Z ">
                        <Path.Fill>
                            <RadialGradientBrush RadiusX="0.450586" RadiusY="0.55923" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#7CFEFFEF" Offset="0"/>
                                    <GradientStop Color="#00FFFFFF" Offset="1"/>
                                </RadialGradientBrush.GradientStops>
                                <RadialGradientBrush.RelativeTransform>
                                    <TransformGroup>
                                        <SkewTransform CenterX="0.5" CenterY="0.5" AngleX="3.24367" AngleY="0"/>
                                        <RotateTransform CenterX="0.5" CenterY="0.5" Angle="-17.9673"/>
                                    </TransformGroup>
                                </RadialGradientBrush.RelativeTransform>
                            </RadialGradientBrush>
                        </Path.Fill>
                    </Path>
                    <Path x:Name="Path_28" Width="31.0251" Height="3.50727" Canvas.Left="88.5359" Canvas.Top="53.8298" Stretch="Fill" Data="F1 M 104.005,53.8762C 112.572,53.6557 119.537,54.2413 119.561,55.1841C 119.585,56.127 112.66,57.0701 104.092,57.2906C 95.5251,57.511 88.5603,56.9255 88.536,55.9826C 88.5117,55.0398 95.4373,54.0967 104.005,53.8762 Z ">
                        <Path.Fill>
                            <RadialGradientBrush RadiusX="0.53719" RadiusY="0.467221" Center="0.5,0.500011" GradientOrigin="0.5,0.500011">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#34FEFFEF" Offset="0"/>
                                    <GradientStop Color="#00FFFFFF" Offset="1"/>
                                </RadialGradientBrush.GradientStops>
                                <RadialGradientBrush.RelativeTransform>
                                    <TransformGroup>
                                        <SkewTransform CenterX="0.5" CenterY="0.500011" AngleX="-11.7491" AngleY="0"/>
                                        <RotateTransform CenterX="0.5" CenterY="0.500011" Angle="-37.4096"/>
                                    </TransformGroup>
                                </RadialGradientBrush.RelativeTransform>
                            </RadialGradientBrush>
                        </Path.Fill>
                    </Path>
                </Canvas>
            </Viewbox>
            <Ellipse x:Name="Ellipse_29" Width="74.6667" Height="82.6667" Canvas.Left="104.603" Canvas.Top="561.987" Stretch="Fill">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.573661" RadiusY="0.518145" Center="0.5,0.5" GradientOrigin="0.5,0.5">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#8FFFC63A" Offset="0"/>
                            <GradientStop Color="#00FF5F1E" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
        </Canvas>
        <Canvas x:Name="Face_Girl_3" d:IsLayer="True" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
            <Ellipse x:Name="Ellipse_30" Width="137.778" Height="64.8889" Canvas.Left="265.986" Canvas.Top="441.722" Stretch="Fill" StrokeThickness="8" StrokeLineJoin="Round" Stroke="#56FFFFFF" Fill="#C7000000"/>
            <Path x:Name="Path_31" Width="104.333" Height="61.6667" Canvas.Left="281.043" Canvas.Top="433.003" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF263627" Data="F1 M 333.21,434.503C 361.193,434.503 383.877,449.725 383.877,468.503C 383.877,487.281 360.115,493.17 332.132,493.17C 304.15,493.17 282.543,487.281 282.543,468.503C 282.543,449.725 305.228,434.503 333.21,434.503 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.65" RadiusY="0.630229" Center="0.5,0.376825" GradientOrigin="0.5,0.376825">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#FE72B567" Offset="0"/>
                            <GradientStop Color="#FE215337" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup/>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_32" Width="191.66" Height="171.395" Canvas.Left="235.077" Canvas.Top="289.707" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF44301E" Data="F1 M 330.907,291.207C 383.004,291.207 425.237,331.578 425.237,381.378C 425.237,431.178 383.969,459.602 331.872,459.602C 279.775,459.602 236.577,431.178 236.577,381.378C 236.577,331.578 278.81,291.207 330.907,291.207 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.771455" RadiusY="0.689885" Center="0.510516,0.167781" GradientOrigin="0.510516,0.167781">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#FEFFFAE8" Offset="0"/>
                            <GradientStop Color="#FEFFEEBB" Offset="0.139831"/>
                            <GradientStop Color="#FFCB9F77" Offset="0.788136"/>
                            <GradientStop Color="#FFA45A42" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <RotateTransform CenterX="0.510516" CenterY="0.167781" Angle="90"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
            <Viewbox x:Name="Group_33" Width="33.5947" Height="48.518" Canvas.Left="254.599" Canvas.Top="366.017">
                <Canvas Width="33.5947" Height="48.518">
                    <Viewbox x:Name="Group_34" Width="26.4369" Height="48.518" Canvas.Left="7.15782" Canvas.Top="0">
                        <Canvas Width="26.4369" Height="48.518">
                            <Path x:Name="Path_35" Width="24.7215" Height="24.1663" Canvas.Left="1.33684" Canvas.Top="24.3516" Stretch="Fill" StrokeThickness="1.34774" StrokeLineJoin="Round" Stroke="#FF000000" Data="F1 M 13.6917,25.0255C 7.24042,25.0255 2.01071,30.1336 2.01071,36.4348C 2.01071,42.736 7.24042,47.8441 13.6917,47.8441C 20.1429,47.8441 25.6758,45.4245 25.3726,39.1302C 24.9101,29.528 20.1429,25.0255 13.6917,25.0255 Z ">
                                <Path.Fill>
                                    <LinearGradientBrush StartPoint="0.499736,0.0456107" EndPoint="1.45157,0.0456107">
                                        <LinearGradientBrush.RelativeTransform>
                                            <TransformGroup>
                                                <SkewTransform CenterX="0.499736" CenterY="0.0456107" AngleX="-0.0377889" AngleY="0"/>
                                                <RotateTransform CenterX="0.499736" CenterY="0.0456107" Angle="90.8116"/>
                                            </TransformGroup>
                                        </LinearGradientBrush.RelativeTransform>
                                        <LinearGradientBrush.GradientStops>
                                            <GradientStop Color="#FE232531" Offset="0"/>
                                            <GradientStop Color="#FE7976BC" Offset="1"/>
                                        </LinearGradientBrush.GradientStops>
                                    </LinearGradientBrush>
                                </Path.Fill>
                            </Path>
                            <Path x:Name="Path_36" Width="16" Height="15.4446" Canvas.Left="6.09003" Canvas.Top="28.5982" Stretch="Fill" Fill="#FF000000" Data="F1 M 14.09,28.5982C 9.6716,28.5982 6.09003,32.0555 6.09003,36.3206C 6.09003,40.5855 9.67172,44.0428 14.09,44.0428C 18.5083,44.0428 22.09,40.5855 22.09,36.3206C 22.09,32.0555 18.5084,28.5982 14.09,28.5982 Z "/>
                            <Path x:Name="Path_37" Width="5.73462" Height="5.73459" Canvas.Left="5.85938" Canvas.Top="29.1003" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 8.72668,29.1003C 7.14307,29.1003 5.85938,30.3839 5.85938,31.9675C 5.85938,33.5511 7.14313,34.8348 8.72668,34.8348C 10.3103,34.8348 11.594,33.5511 11.594,31.9675C 11.594,30.3839 10.3103,29.1003 8.72668,29.1003 Z "/>
                            <Path x:Name="Path_38" Width="25.7078" Height="9.70916" Canvas.Left="0.729128" Canvas.Top="2.04048" Stretch="Fill" Fill="#FF6E4A29" Data="F1 M 0.781708,11.7316C 0,12.0475 8.11124,8.1297 13.3537,7.02795C 19.1853,5.80231 26.4369,7.15393 26.4369,7.15393C 26.4369,7.15393 22.1722,0 11.0958,2.61563C 7.86926,3.37756 3.99216,6.67969 0.781708,11.7316 Z "/>
                        </Canvas>
                    </Viewbox>
                    <Path x:Name="Path_39" Width="27.3284" Height="10.9924" Canvas.Left="1.85355" Canvas.Top="17.6978" Stretch="Fill" Fill="#FF000000" Data="F1 M 21.7164,24.5301C 21.64,24.1081 3.31609,26.4581 4.43919,17.6978C 2.41759,18.8957 0,27.4541 4.04323,27.4541C 7.0432,28.0096 24.8905,24.093 29.182,28.6902C 26.5988,26.093 23.7237,25.2319 21.7164,24.5301 Z "/>
                </Canvas>
            </Viewbox>
            <Path x:Name="Path_40" Width="182.996" Height="76.9279" Canvas.Left="240.567" Canvas.Top="326.602" Stretch="Fill" Fill="#71673902" Data="F1 M 423.435,390.56C 415.614,362.86 403.392,353.221 393.17,348.748C 376.059,360.554 319.614,379.388 262.448,350.554C 248.448,361.221 243.866,393.627 240.87,403.53C 238.203,395.696 254.037,333.231 254.037,333.231C 254.037,333.231 308.458,326.602 311.784,326.602C 315.109,326.602 393.415,327.206 393.415,327.206C 393.415,327.206 425.853,362.14 423.435,390.56 Z "/>
            <Path x:Name="Path_41" Width="21.725" Height="7.79736" Canvas.Left="321.823" Canvas.Top="431.013" Stretch="Fill" StrokeThickness="2.1433" StrokeLineJoin="Round" Stroke="#FF824F39" Fill="#FFB56654" Data="F1 M 322.895,432.084C 322.895,432.084 341.814,432.168 342.477,432.084C 342.477,432.084 338.866,437.738 332.686,437.738C 326.529,437.738 322.895,432.084 322.895,432.084 Z "/>
            <Path x:Name="Path_42" Width="206.588" Height="152.383" Canvas.Left="229.208" Canvas.Top="273.255" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF4F5518" Fill="#FFDFBF5A" Data="F1 M 421.837,381.749C 423.128,395.382 421.614,414.138 415.114,424.138C 431.781,415.304 439.459,370.782 430.537,343.641C 421.615,316.499 393.42,274.755 330.529,274.755C 267.101,274.755 240.948,322.054 233.392,348.721C 225.837,375.388 235.726,413.055 244.614,422.971C 237.468,398.337 239.726,367.277 264.614,340.193C 265.105,339.66 265.615,343.916 263.392,346.388C 273.837,354.61 316.391,360.327 326.17,360.971C 328.788,361.143 330.866,356.413 331.021,353.356C 331.388,356.243 333.413,361.232 335.618,361.133C 368.69,359.645 389.988,345.602 393.059,342.721C 391.948,339.472 391.011,335.664 391.837,335.86C 392.835,336.097 417.926,359.605 421.837,381.749 Z "/>
            <Path x:Name="Path_43" Width="173.845" Height="55.8271" Canvas.Left="245.939" Canvas.Top="278.365" Stretch="Fill" Fill="#5EFCFFC1" Data="F1 M 330.238,278.433C 357.759,277.641 394.69,283.097 419.784,334.192C 410.509,326.837 384.716,304.865 330.594,304.865C 276.474,304.865 253.741,324.707 245.939,330.564C 265.591,289.446 309.571,278.433 330.238,278.433 Z "/>
            <Path x:Name="Path_44" Width="38.4698" Height="27.8335" Canvas.Left="360.477" Canvas.Top="417.173" Stretch="Fill" Data="F1 M 374.573,420.392C 364.339,425.308 358.343,434.082 361.181,439.991C 364.019,445.899 374.616,446.704 384.85,441.788C 395.084,436.872 401.08,428.098 398.243,422.189C 395.405,416.281 384.808,415.476 374.573,420.392 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.483498" RadiusY="0.485662" Center="0.500001,0.500001" GradientOrigin="0.500001,0.500001">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#80F73939" Offset="0"/>
                            <GradientStop Color="#00B06F55" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.500001" CenterY="0.500001" AngleX="-18.5302" AngleY="0"/>
                                <RotateTransform CenterX="0.500001" CenterY="0.500001" Angle="168.975"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
            <Path x:Name="Path_45" Width="36.8711" Height="26.6768" Canvas.Left="264.906" Canvas.Top="417.751" Stretch="Fill" Data="F1 M 288.266,420.836C 298.075,425.548 303.822,433.958 301.102,439.62C 298.382,445.283 288.226,446.054 278.417,441.343C 268.608,436.632 262.861,428.222 265.581,422.559C 268.301,416.896 278.457,416.125 288.266,420.836 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.483497" RadiusY="0.485662" Center="0.5,0.500001" GradientOrigin="0.5,0.500001">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#80F73939" Offset="0"/>
                            <GradientStop Color="#00B06F55" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.5" CenterY="0.500001" AngleX="18.5301" AngleY="0"/>
                                <RotateTransform CenterX="0.5" CenterY="0.500001" Angle="11.0253"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
            <Viewbox x:Name="Group_46" Width="33.5947" Height="48.518" Canvas.Left="372.866" Canvas.Top="366.017">
                <Canvas Width="33.5947" Height="48.518">
                    <Viewbox x:Name="Group_47" Width="26.4369" Height="48.518" Canvas.Left="0" Canvas.Top="0">
                        <Canvas Width="26.4369" Height="48.518">
                            <Path x:Name="Path_48" Width="24.7215" Height="24.1663" Canvas.Left="0.378533" Canvas.Top="24.3516" Stretch="Fill" StrokeThickness="1.34774" StrokeLineJoin="Round" Stroke="#FF000000" Data="F1 M 12.7452,25.0255C 19.1965,25.0255 24.4262,30.1336 24.4262,36.4348C 24.4262,42.736 19.1964,47.8441 12.7452,47.8441C 6.29407,47.8441 0.761139,45.4245 1.0643,39.1302C 1.52682,29.528 6.29404,25.0255 12.7452,25.0255 Z ">
                                <Path.Fill>
                                    <LinearGradientBrush StartPoint="0.484648,0.0961876" EndPoint="1.33083,0.0961876">
                                        <LinearGradientBrush.RelativeTransform>
                                            <TransformGroup>
                                                <SkewTransform CenterX="0.484648" CenterY="0.0961876" AngleX="0.0564695" AngleY="0"/>
                                                <RotateTransform CenterX="0.484648" CenterY="0.0961876" Angle="88.7828"/>
                                            </TransformGroup>
                                        </LinearGradientBrush.RelativeTransform>
                                        <LinearGradientBrush.GradientStops>
                                            <GradientStop Color="#FE232531" Offset="0"/>
                                            <GradientStop Color="#FE7976BC" Offset="1"/>
                                        </LinearGradientBrush.GradientStops>
                                    </LinearGradientBrush>
                                </Path.Fill>
                            </Path>
                            <Path x:Name="Path_49" Width="16" Height="15.4446" Canvas.Left="4.34692" Canvas.Top="28.5982" Stretch="Fill" Fill="#FF000000" Data="F1 M 12.3469,28.5982C 16.7653,28.5982 20.3469,32.0555 20.3469,36.3206C 20.3469,40.5855 16.7652,44.0428 12.3469,44.0428C 7.92859,44.0428 4.34692,40.5855 4.34692,36.3206C 4.34692,32.0555 7.9285,28.5982 12.3469,28.5982 Z "/>
                            <Path x:Name="Path_50" Width="5.73459" Height="5.73459" Canvas.Left="4.04288" Canvas.Top="29.1003" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 6.91019,29.1003C 8.49377,29.1003 9.77747,30.3839 9.77747,31.9675C 9.77747,33.5511 8.49377,34.8348 6.91019,34.8348C 5.32663,34.8348 4.04288,33.5511 4.04288,31.9675C 4.04288,30.3839 5.32657,29.1003 6.91019,29.1003 Z "/>
                            <Path x:Name="Path_51" Width="25.7077" Height="9.70916" Canvas.Left="0" Canvas.Top="2.04048" Stretch="Fill" Fill="#FF6E4A29" Data="F1 M 25.6552,11.7316C 26.4369,12.0475 18.3257,8.1297 13.0832,7.02795C 7.25159,5.80231 0,7.15393 0,7.15393C 0,7.15393 4.26468,0 15.3411,2.61563C 18.5676,3.37756 22.4447,6.67969 25.6552,11.7316 Z "/>
                        </Canvas>
                    </Viewbox>
                    <Path x:Name="Path_52" Width="27.3284" Height="10.9924" Canvas.Left="4.41272" Canvas.Top="17.6978" Stretch="Fill" Fill="#FF000000" Data="F1 M 11.8783,24.5301C 11.9547,24.1081 30.2786,26.4581 29.1555,17.6978C 31.1771,18.8957 33.5947,27.4541 29.5514,27.4541C 26.5515,28.0096 8.70422,24.093 4.41272,28.6902C 6.99588,26.093 9.87094,25.2319 11.8783,24.5301 Z "/>
                </Canvas>
            </Viewbox>
            <Viewbox x:Name="Group_53" Width="89.2222" Height="67.8574" Canvas.Left="289.17" Canvas.Top="273.53">
                <Canvas Width="89.2222" Height="67.8574">
                    <Path x:Name="Path_54" Width="53.2217" Height="57.2385" Canvas.Left="0.282065" Canvas.Top="7.41022" Stretch="Fill" StrokeThickness="0.0864429" StrokeLineJoin="Round" Stroke="#D2FBFFB1" Fill="#D2FBFFB1" Data="F1 M 0.34613,63.9778C 0.396057,64.1629 0.383728,64.3776 0.495911,64.533C 0.552124,64.6108 0.69635,64.6257 0.780304,64.5791C 1.43472,64.2156 1.66672,63.3626 1.99316,62.689C 9.99384,48.3768 20.0854,34.7239 32.7285,24.2835C 36.903,20.8364 41.3491,17.6966 45.9843,14.8994C 47.7488,13.8346 49.5555,12.8323 51.249,11.6577C 52.2035,10.9957 53.7285,10.0517 53.42,8.93188C 53.0832,7.70947 51.1781,7.51685 49.9113,7.46265C 47.652,7.36597 45.4077,8.04865 43.239,8.68927C 37.4034,10.413 32.2019,14.0585 27.4668,17.88C 18.9402,24.7616 12.2059,34.0191 7.22125,43.7768C 4.22864,49.6348 1.02649,55.737 0.364014,62.2817L 0.325287,63.2106L 0.34613,63.9778 Z "/>
                </Canvas>
            </Viewbox>
            <Viewbox x:Name="Group_55" Width="86.2222" Height="66.348" Canvas.Left="274.948" Canvas.Top="273.595">
                <Canvas Width="86.2222" Height="66.348">
                    <Path x:Name="Path_56" Width="50.1118" Height="55.4352" Canvas.Left="0.47025" Canvas.Top="7.62567" Stretch="Fill" StrokeThickness="0.0653593" StrokeLineJoin="Round" Stroke="#ABFBFFAF" Fill="#ABFBFFAF" Data="F1 M 0.50293,62.4499C 0.532135,62.6239 0.505493,62.8174 0.590576,62.972C 0.625671,63.0357 0.747986,63.0447 0.806824,63.0019C 1.37988,62.5849 1.55145,61.7901 1.83221,61.1394C 8.87073,47.0291 17.6928,33.091 29.7973,22.9854C 33.8643,19.59 38.2202,16.4983 42.831,13.8887C 44.6017,12.8865 46.4208,11.969 48.1665,10.9238C 49.1061,10.3613 50.8085,9.6828 50.5161,8.62744C 50.2034,7.4989 48.304,7.65466 47.1332,7.67932C 45.0433,7.72339 42.9995,8.39844 41.0144,9.05359C 35.3827,10.912 30.3428,14.442 25.7519,18.1961C 18.528,24.1033 12.9691,32.0357 8.43213,40.1901C 4.85413,46.6208 1.63507,53.5455 0.600433,60.8315L 0.52478,61.7193L 0.50293,62.4499 Z "/>
                </Canvas>
            </Viewbox>
            <Viewbox x:Name="Group_57" Width="86.2222" Height="65.9662" Canvas.Left="258.726" Canvas.Top="275.422">
                <Canvas Width="86.2222" Height="65.9662">
                    <Path x:Name="Path_58" Width="49.9857" Height="54.964" Canvas.Left="0.611926" Canvas.Top="7.70598" Stretch="Fill" StrokeThickness="0.0451885" StrokeLineJoin="Round" Stroke="#68FAFF9A" Fill="#68FAFF9A" Data="F1 M 0.639923,62.1024C 0.64801,62.2711 0.610199,62.4485 0.664246,62.6086C 0.68042,62.6566 0.780273,62.6587 0.815491,62.6223C 1.30008,62.122 1.43439,61.3716 1.67828,60.7191C 8.00842,46.1842 17.0639,32.096 29.2716,21.9814C 33.3998,18.561 37.8334,15.4458 42.573,12.9405C 44.3799,11.9854 46.2325,11.119 48.0569,10.1979C 48.9771,9.73328 50.828,9.35449 50.5462,8.36292C 50.2519,7.32739 48.4135,7.84552 47.3425,7.95465C 45.305,8.16229 43.3371,8.86072 41.4109,9.55652C 35.9254,11.538 30.9937,14.9829 26.4747,18.6701C 19.3251,24.5037 13.7461,32.253 9.11987,40.2372C 5.46002,46.5535 2.18512,53.3337 0.82663,60.5063L 0.708466,61.3835L 0.639923,62.1024 Z "/>
                </Canvas>
            </Viewbox>
            <Viewbox x:Name="Group_59" Width="86.2222" Height="66.4278" Canvas.Left="304.726" Canvas.Top="276.96">
                <Canvas Width="86.2222" Height="66.4278">
                    <Path x:Name="Path_60" Width="50.1397" Height="55.5588" Canvas.Left="0.439516" Canvas.Top="7.58351" Stretch="Fill" StrokeThickness="0.0695761" StrokeLineJoin="Round" Stroke="#ABFBFFA8" Fill="#ABFBFFA8" Data="F1 M 0.474304,62.5225C 0.507935,62.6977 0.484375,62.8944 0.575226,63.0479C 0.614655,63.1145 0.741089,63.1248 0.805054,63.0812C 1.39328,62.6805 1.57574,61.8778 1.86444,61.2272C 9.04791,47.2098 17.8241,33.2993 29.9072,23.1953C 33.9615,19.805 38.3013,16.718 42.8849,14.0869C 44.6483,13.0747 46.4608,12.1458 48.1895,11.0756C 49.1341,10.4907 50.8055,9.75366 50.5098,8.68274C 50.1921,7.5321 48.2832,7.61591 47.0895,7.62177C 44.9898,7.63208 42.9293,8.30176 40.9316,8.94843C 35.2699,10.7813 30.2068,14.3288 25.6008,18.097C 18.3614,24.0197 12.8065,31.9903 8.28836,40.1802C 4.72736,46.6352 1.52036,53.5912 0.553162,60.8994L 0.486389,61.7895L 0.474304,62.5225 Z "/>
                </Canvas>
            </Viewbox>
            <Viewbox x:Name="Group_61" Width="86.2222" Height="65.9663" Canvas.Left="319.392" Canvas.Top="281.199">
                <Canvas Width="86.2222" Height="65.9663">
                    <Path x:Name="Path_62" Width="49.9857" Height="54.964" Canvas.Left="0.61192" Canvas.Top="7.70599" Stretch="Fill" StrokeThickness="0.0451885" StrokeLineJoin="Round" Stroke="#6AFAFF9A" Fill="#6AFAFF9A" Data="F1 M 0.639923,62.1024C 0.64801,62.2711 0.610199,62.4486 0.664215,62.6086C 0.68042,62.6566 0.780243,62.6587 0.81546,62.6223C 1.30008,62.122 1.43436,61.3716 1.67825,60.7191C 8.00839,46.1842 17.0639,32.096 29.2716,21.9814C 33.3997,18.561 37.8334,15.4458 42.573,12.9406C 44.3799,11.9854 46.2325,11.119 48.0569,10.1979C 48.9771,9.73328 50.8279,9.35449 50.5462,8.36292C 50.2519,7.32739 48.4135,7.84555 47.3425,7.95468C 45.305,8.16232 43.3371,8.86072 41.4109,9.55652C 35.9254,11.538 30.9936,14.9829 26.4747,18.6701C 19.3251,24.5037 13.7461,32.2531 9.11984,40.2372C 5.45999,46.5535 2.18512,53.3337 0.82663,60.5063L 0.708466,61.3835L 0.639923,62.1024 Z "/>
                </Canvas>
            </Viewbox>
            <Path x:Name="Path_63" Width="206.667" Height="94.9438" Canvas.Left="229.057" Canvas.Top="284.251" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#67000000" Fill="#FFDFDFDF" Data="F1 M 434.224,377.694C 419.177,256.367 246.288,254.145 230.557,376.806C 255.621,279.034 399.621,266.589 434.224,377.694 Z "/>
            <Viewbox x:Name="Group_64" Width="62.5641" Height="99.8643" Canvas.Left="362.66" Canvas.Top="227.873">
                <Canvas Width="62.5641" Height="99.8643">
                    <Path x:Name="Path_65" Width="41.7173" Height="71.6743" Canvas.Left="8.11356" Canvas.Top="17.4249" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF313131" Fill="#FFFFFFFF" Data="F1 M 10.6196,69.2201C 10.6196,69.2201 1.5,1.5 38.1752,23.2202C 61.0641,36.7756 38.5276,76.8341 35.5722,87.5992"/>
                    <Path x:Name="Path_66" Width="30.0553" Height="62.4436" Canvas.Left="13.0386" Canvas.Top="24.0987" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FFB03500" Data="F1 M 14.6196,72.2645C 14.6196,72.2645 12.3974,19.6646 31.2307,26.1532C 53.2314,33.7332 33.6619,78.154 31.7307,85.0423">
                        <Path.Fill>
                            <RadialGradientBrush RadiusX="0.840576" RadiusY="1.52673" Center="0.35972,0.849758" GradientOrigin="0.35972,0.849758">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#FEE4E4E4" Offset="0.035865"/>
                                    <GradientStop Color="#FEFF5D04" Offset="1"/>
                                </RadialGradientBrush.GradientStops>
                                <RadialGradientBrush.RelativeTransform>
                                    <TransformGroup>
                                        <SkewTransform CenterX="0.35972" CenterY="0.849758" AngleX="18.0147" AngleY="0"/>
                                        <RotateTransform CenterX="0.35972" CenterY="0.849758" Angle="-66.1328"/>
                                    </TransformGroup>
                                </RadialGradientBrush.RelativeTransform>
                            </RadialGradientBrush>
                        </Path.Fill>
                    </Path>
                </Canvas>
            </Viewbox>
            <Viewbox x:Name="Group_67" Width="62.5641" Height="99.8643" Canvas.Left="238.909" Canvas.Top="227.873">
                <Canvas Width="62.5641" Height="99.8643">
                    <Path x:Name="Path_68" Width="41.7173" Height="71.6743" Canvas.Left="12.7332" Canvas.Top="17.4249" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FF313131" Fill="#FFFFFFFF" Data="F1 M 51.9445,69.2201C 51.9445,69.2201 61.0641,1.5 24.3889,23.2202C 1.5,36.7756 24.0365,76.8341 26.9919,87.5992"/>
                    <Path x:Name="Path_69" Width="30.0553" Height="62.4436" Canvas.Left="19.4702" Canvas.Top="24.0987" Stretch="Fill" StrokeThickness="3" StrokeLineJoin="Round" Stroke="#FFB03500" Data="F1 M 47.9445,72.2645C 47.9445,72.2645 50.1666,19.6646 31.3334,26.1532C 9.33263,33.7332 28.9021,78.154 30.8333,85.0423">
                        <Path.Fill>
                            <RadialGradientBrush RadiusX="0.840576" RadiusY="1.52673" Center="0.64028,0.849758" GradientOrigin="0.64028,0.849758">
                                <RadialGradientBrush.GradientStops>
                                    <GradientStop Color="#FEE4E4E4" Offset="0.035865"/>
                                    <GradientStop Color="#FEFF5D04" Offset="1"/>
                                </RadialGradientBrush.GradientStops>
                                <RadialGradientBrush.RelativeTransform>
                                    <TransformGroup>
                                        <SkewTransform CenterX="0.64028" CenterY="0.849758" AngleX="-18.0147" AngleY="0"/>
                                        <RotateTransform CenterX="0.64028" CenterY="0.849758" Angle="246.133"/>
                                    </TransformGroup>
                                </RadialGradientBrush.RelativeTransform>
                            </RadialGradientBrush>
                        </Path.Fill>
                    </Path>
                </Canvas>
            </Viewbox>
            <Path x:Name="Path_70" Width="141.333" Height="30.69" Canvas.Left="260.002" Canvas.Top="292.181" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 260.002,322.204C 260.185,322.664 292.335,291.204 328.669,292.204C 365.002,293.204 383.169,304.038 401.335,322.871C 379.335,304.538 360.835,295.638 328.002,295.638C 300.669,295.638 274.002,311.538 260.002,322.204 Z "/>
        </Canvas>
        <Canvas x:Name="Helmet" d:IsLayer="True" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
            <Ellipse x:Name="Ellipse_71" Width="252" Height="252" Canvas.Left="204" Canvas.Top="222" Stretch="Fill" StrokeThickness="8" StrokeLineJoin="Round" Stroke="#5FFFFFFF">
                <Ellipse.Fill>
                    <RadialGradientBrush RadiusX="0.63492" RadiusY="0.634921" Center="0.477954,0.779541" GradientOrigin="0.477954,0.779541">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#00FFFFFF" Offset="0"/>
                            <GradientStop Color="#34FFFFFF" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <RotateTransform CenterX="0.477954" CenterY="0.779541" Angle="-90"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Ellipse.Fill>
            </Ellipse>
            <Path x:Name="Path_72" Width="182.649" Height="44.8834" Canvas.Left="238.898" Canvas.Top="235.638" Stretch="Fill" Data="F1 M 327.775,235.638C 350.387,235.638 395.194,242.694 421.547,280.521C 409.625,269.937 373.653,255.985 329.03,255.985C 284.408,255.985 248.926,271.309 238.898,279.737C 258.965,250.337 301.21,235.638 327.775,235.638 Z ">
                <Path.Fill>
                    <RadialGradientBrush RadiusX="0.531" RadiusY="1.39377" Center="0.502061,1.47467" GradientOrigin="0.502061,1.47467">
                        <RadialGradientBrush.GradientStops>
                            <GradientStop Color="#00FFFFFF" Offset="0.800847"/>
                            <GradientStop Color="#9DFFFFFF" Offset="1"/>
                        </RadialGradientBrush.GradientStops>
                        <RadialGradientBrush.RelativeTransform>
                            <TransformGroup>
                                <SkewTransform CenterX="0.502061" CenterY="1.47467" AngleX="-0.0142521" AngleY="0"/>
                            </TransformGroup>
                        </RadialGradientBrush.RelativeTransform>
                    </RadialGradientBrush>
                </Path.Fill>
            </Path>
        </Canvas>
    </Canvas>

</Page>

你会发现上面的代码中,有许多这样的片段:
Data="F1 M 10.1172,19.4509L 1.5,21.2192L 1.5,40.5689L 10.231,42.0653L 10.1172,19.4509 Z "
这其实是描述PathGeometry所包含的数据的更轻量级的表示形式
你可以在MSDN的path markup syntax节找到解释

在WPF中自定义你的绘制(四)的更多相关文章

  1. 在WPF中自定义你的绘制(三)

    原文:在WPF中自定义你的绘制(三) 在WPF中自定义你的绘制(三)                                                                  ...

  2. 在WPF中自定义你的绘制(五)

    原文:在WPF中自定义你的绘制(五) 在WPF中自定义你的绘制(五)                                                                   ...

  3. 在WPF中自定义你的绘制(一)

    原文:在WPF中自定义你的绘制(一)   在WPF中自定义你的绘制(一)                                                                 ...

  4. 在WPF中自定义你的绘制(二)

    原文:在WPF中自定义你的绘制(二)   在WPF中自定义你的绘制(二)                                                                 ...

  5. 在VS2005中设置WPF中自定义按钮的事件

    原文:在VS2005中设置WPF中自定义按钮的事件 上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/17407 ...

  6. 示例:WPF中自定义MessageService应用DialogHost、Snackbar、NotifyIcon显示各种场景提示消息

    原文:示例:WPF中自定义MessageService应用DialogHost.Snackbar.NotifyIcon显示各种场景提示消息 一.目的:不同交互场景需要提示不同的消息,不同的消息需要用不 ...

  7. WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探

    原文:WPF中自定义的DataTemplate中的控件,在Window_Loaded事件中加载机制初探         最近因为项目需要,开始学习如何使用WPF开发桌面程序.使用WPF一段时间之后,感 ...

  8. 示例:WPF中自定义StoryBoarService在代码中封装StoryBoard、Animation用于简化动画编写

    原文:示例:WPF中自定义StoryBoarService在代码中封装StoryBoard.Animation用于简化动画编写 一.目的:通过对StoryBoard和Animation的封装来简化动画 ...

  9. WPF中自定义绘制内容

    先说结论:实现了在自定义大小的窗口中,加载图片,并在图片上绘制一个矩形框:且在窗口大小改变的情况,保持绘制的矩形框与图片的先对位置不变. 在WinForm中,我们可以很方便地绘制自己需要的内容,在WP ...

随机推荐

  1. Keil C51.uew

    /L15"Keil C51" Line Comment = // Block Comment On = /* Block Comment Off = */ Escape Char ...

  2. Linux系统编程(7)—— 进程之进程概述

    我们知道,每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体.现在我们全面了解一下其中都有哪些信息. 进程id.系统中每个进程有 ...

  3. 【转】 怎么刷入BOOT.IMG(刷机后开机卡在第一屏的童鞋请注意)-------不错不错

    原文网址:http://bbs.gfan.com/android-3440837-1-1.html 之前呢,有好多机油问我关于刷机卡屏的问题,我解答了好多,但一一解答太费事了,在这里给大家发个贴吧.其 ...

  4. Types of Binary Tree

    Complete Binary Tree According to wiki, A complete binary tree is a binary tree in which every level ...

  5. 剑指offer-面试题9.斐波拉契数列

    题目一:写一个函数,输入n,求斐波拉契数列的第n项. 斐波拉契数列的定义如下: { n=; f(n)={ n=; { f(n-)+f(n-) n>; 斐波拉契问题很明显我们会想到用递归来解决: ...

  6. 剑指offer-面试题1:赋值运算符函数

    题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数 class CMyString { public: CMyString(char *pData=NULL); CMyString ...

  7. MongoDB C Driver and APIinstances linux MongoDB安装配置

    <一,linux平台MongoDB安装配置>在这我们使用的Centos6 yum部署的,你想搞编译,自个干!

  8. 精讲N皇后问题

             思想:存三个数组记录记录走的过程,运用回溯不符合或row==n+1就跳出当前层,直到找完:递归时的路径都在保存着,当连续跳出到第一次进入的dfs且i=n时就全部跳出dfs函数了: # ...

  9. 棋盘覆盖(大数阶乘,大数相除 + java)

    棋盘覆盖 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 在一个2k×2k(1<=k<=100)的棋盘中恰有一方格被覆盖,如图1(k=2时),现用一缺角的 ...

  10. PCI、PCIE配置空间的訪问(MCFG,Bus,Device,Funtion)

    一般来说,在x86平台上,有两大类方式能够訪问这一区间的寄存器,   1,配置机制1#或者配置机制2#   訪问时借助in/out指令.请注意,这样的方式有别于一般的in/out指令訪问PCI的IO空 ...