Click here to Skip to main content
15,888,286 members
Articles / Web Development / ASP.NET

Silverlight Alien Sokoban

Rate me:
Please Sign up or sign in to vote.
4.88/5 (59 votes)
11 Nov 200717 min read 133.8K   1K   138  
A fun Silverlight implementation of the game Sokoban. Contrasting Silverlight 1.1 and WPF, while showcasing some new features of C# 3.0, Expression Design, Expression Blend, and Visual Studio 2008.
<?xml version="1.0" encoding="utf-8"?>
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="BackgroundControl_design">
	<Canvas x:Name="Layer_2" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
		<Path Width="301.438" Height="320.377" Canvas.Left="517.501" Canvas.Top="96.4151" Stretch="Fill" Data="F1 M 666.178,96.4268C 749.41,95.3657 817.797,166.219 818.925,254.682C 820.053,343.145 753.494,415.719 670.262,416.78C 587.03,417.841 518.643,346.988 517.515,258.525C 516.388,170.062 582.946,97.488 666.178,96.4268 Z ">
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.499989" RadiusY="0.500009" Center="0.499442,0.458844" GradientOrigin="0.499442,0.458844">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0.00847458"/>
						<GradientStop Color="#FF14D800" Offset="0.728814"/>
						<GradientStop Color="#FF0D8301" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<SkewTransform CenterX="0.499442" CenterY="0.458844" AngleX="0.0890768" AngleY="0"/>
							<RotateTransform CenterX="0.499442" CenterY="0.458844" Angle="-0.687268"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Ellipse Width="149.372" Height="155.147" Canvas.Left="595.849" Canvas.Top="123.68" Stretch="Fill" StrokeThickness="5" StrokeLineJoin="Round">
			<Ellipse.Stroke>
				<RadialGradientBrush RadiusX="0.502593" RadiusY="0.483886" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FFFFFFFF" Offset="0"/>
						<GradientStop Color="#FF817F7F" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Stroke>
			<Ellipse.Fill>
				<RadialGradientBrush RadiusX="0.502593" RadiusY="0.483886" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF000000" Offset="0"/>
						<GradientStop Color="#FF000000" Offset="0.177966"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.199153"/>
						<GradientStop Color="#FEFFFFFF" Offset="0.25"/>
						<GradientStop Color="#FEFF0000" Offset="0.275424"/>
						<GradientStop Color="#FFFF0000" Offset="0.34322"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.36017"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.677966"/>
						<GradientStop Color="#FF838383" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Fill>
		</Ellipse>
		<Path Width="155.371" Height="65.3197" Canvas.Left="586.158" Canvas.Top="287.971" Stretch="Fill" StrokeThickness="9" StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FF000000" Data="F1 M 590.658,300.603C 630.503,303.042 642.701,316.866 675.228,315.24C 707.755,313.614 737.029,292.471 737.029,292.471C 737.029,292.471 705.315,345.328 678.48,348.58C 651.646,351.833 619.932,316.595 590.658,300.603 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="608.186" Canvas.Top="307.921" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 617.718,334.756L 627.25,307.921L 608.186,307.921L 617.718,334.756 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="629.509" Canvas.Top="310.768" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 639.041,337.602L 648.574,310.768L 629.509,310.768L 639.041,337.602 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="650.652" Canvas.Top="314.02" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 660.184,340.855L 669.716,314.02L 650.652,314.02L 660.184,340.855 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="675.047" Canvas.Top="314.02" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 684.579,340.855L 694.112,314.02L 675.047,314.02L 684.579,340.855 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="697.816" Canvas.Top="309.954" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 707.348,336.789L 716.88,309.954L 697.816,309.954L 707.348,336.789 Z "/>
		<Path Width="107.141" Height="195.777" Canvas.Left="498.461" Canvas.Top="357.217" Stretch="Fill" Data="F1 M 566.262,363.217C 566.262,363.217 490.637,416.074 559.757,457.546C 628.877,499.017 506.364,499.188 506.087,497.391C 504.461,486.82 504.461,507.149 504.461,507.149L 555.691,507.149L 516.659,527.479L 525.604,536.423L 561.383,510.402L 546.196,545.61L 554.878,546.995L 567.076,504.71L 599.602,471.37C 599.602,471.37 549.999,425.832 549.999,425.019C 549.999,424.205 589.031,384.36 589.031,384.36L 566.262,363.217 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444432" Center="0.572103,0.539459" GradientOrigin="0.572103,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF119E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444432" Center="0.572103,0.539459" GradientOrigin="0.572103,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF2FFF00" Offset="0.00847458"/>
						<GradientStop Color="#FF119E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="26.8347" Height="13.824" Canvas.Left="476" Canvas.Top="494.952" Stretch="Fill" Fill="#FF000000" Data="F1 M 476,502.27L 502.835,508.776L 502.835,494.952L 476,502.27 Z "/>
		<Path Width="29.2743" Height="31.7137" Canvas.Left="497.956" Canvas.Top="526.665" Stretch="Fill" Fill="#FF000000" Data="F1 M 497.956,558.379L 527.23,536.423L 515.846,526.665"/>
		<Path Width="17.0767" Height="29.6847" Canvas.Left="539.428" Canvas.Top="544.555" Stretch="Fill" Fill="#FF000000" Data="F1 M 539.428,574.24L 556.504,547.808L 544.307,544.555"/>
		<Path Width="107.141" Height="195.777" Canvas.Left="726.15" Canvas.Top="348.683" Stretch="Fill" Data="F1 M 765.49,354.683C 765.49,354.683 841.115,407.539 771.996,449.011C 702.876,490.483 825.388,490.654 825.665,488.857C 827.291,478.285 827.291,498.615 827.291,498.615L 776.061,498.615L 815.094,518.944L 806.149,527.889L 770.369,501.867L 785.557,537.075L 776.875,538.46L 764.677,496.175L 732.15,462.835C 732.15,462.835 781.754,417.297 781.754,416.484C 781.754,415.671 742.721,375.825 742.721,375.825L 765.49,354.683 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.812102" RadiusY="0.444431" Center="0.427898,0.539459" GradientOrigin="0.427898,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.427898" CenterY="0.539459" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.812102" RadiusY="0.444431" Center="0.427898,0.539459" GradientOrigin="0.427898,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.427898" CenterY="0.539459" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="11.3845" Height="25.2084" Canvas.Left="775.248" Canvas.Top="538.253" Stretch="Fill" Fill="#FF000000" Data="F1 M 784.193,563.462L 786.633,538.253L 775.248,539.066"/>
		<Path Width="28.4611" Height="15.4503" Canvas.Left="828.104" Canvas.Top="486.007" Stretch="Fill" Fill="#FF000000" Data="F1 M 856.566,501.457L 828.104,486.007L 828.104,499.831"/>
		<Path Width="26.8347" Height="29.4776" Canvas.Left="805.742" Canvas.Top="517.619" Stretch="Fill" Fill="#FF000000" Data="F1 M 832.577,547.096L 816.313,517.619L 805.742,530.833"/>
	</Canvas>
	<Canvas x:Name="Layer_4" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
		<Path Width="107.141" Height="195.777" Canvas.Left="568.534" Canvas.Top="374.683" Stretch="Fill" Data="F1 M 607.874,380.683C 607.874,380.683 683.499,433.539 614.379,475.011C 545.26,516.483 667.772,516.654 668.049,514.857C 669.675,504.285 669.675,524.615 669.675,524.615L 618.445,524.615L 657.478,544.944L 648.533,553.889L 612.753,527.867L 627.94,563.075L 619.258,564.46L 607.061,522.175L 574.534,488.835C 574.534,488.835 624.137,443.297 624.137,442.484C 624.137,441.671 585.105,401.825 585.105,401.825L 607.874,380.683 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444432" Center="0.427897,0.539459" GradientOrigin="0.427897,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.427897" CenterY="0.539459" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444432" Center="0.427897,0.539459" GradientOrigin="0.427897,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.427897" CenterY="0.539459" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="301.438" Height="320.377" Canvas.Left="353.885" Canvas.Top="104.415" Stretch="Fill" Data="F1 M 502.562,104.427C 585.794,103.366 654.181,174.219 655.309,262.682C 656.437,351.145 589.878,423.719 506.646,424.78C 423.414,425.841 355.027,354.988 353.899,266.525C 352.771,178.062 419.33,105.488 502.562,104.427 Z ">
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.499989" RadiusY="0.500009" Center="0.499442,0.458844" GradientOrigin="0.499442,0.458844">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0.00847458"/>
						<GradientStop Color="#FF14D800" Offset="0.728814"/>
						<GradientStop Color="#FF0D8301" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<SkewTransform CenterX="0.499442" CenterY="0.458844" AngleX="0.0890632" AngleY="0"/>
							<RotateTransform CenterX="0.499442" CenterY="0.458844" Angle="-0.687268"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Ellipse Width="149.372" Height="155.147" Canvas.Left="432.233" Canvas.Top="131.68" Stretch="Fill" StrokeThickness="5" StrokeLineJoin="Round">
			<Ellipse.Stroke>
				<RadialGradientBrush RadiusX="0.502593" RadiusY="0.483886" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FFFFFFFF" Offset="0"/>
						<GradientStop Color="#FF817F7F" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Stroke>
			<Ellipse.Fill>
				<RadialGradientBrush RadiusX="0.502593" RadiusY="0.483886" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF000000" Offset="0"/>
						<GradientStop Color="#FF000000" Offset="0.177966"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.199153"/>
						<GradientStop Color="#FEFFFFFF" Offset="0.25"/>
						<GradientStop Color="#FEFF0000" Offset="0.275424"/>
						<GradientStop Color="#FFFF0000" Offset="0.34322"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.36017"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.677966"/>
						<GradientStop Color="#FF838383" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Fill>
		</Ellipse>
		<Path Width="155.371" Height="65.3197" Canvas.Left="422.541" Canvas.Top="295.971" Stretch="Fill" StrokeThickness="9" StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FF000000" Data="F1 M 427.041,308.603C 466.887,311.042 479.085,324.866 511.612,323.24C 544.139,321.614 573.413,300.471 573.413,300.471C 573.413,300.471 541.699,353.328 514.864,356.58C 488.03,359.833 456.316,324.595 427.041,308.603 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="444.569" Canvas.Top="315.921" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 454.102,342.756L 463.634,315.921L 444.569,315.921L 454.102,342.756 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="465.893" Canvas.Top="318.768" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 475.425,345.602L 484.958,318.768L 465.893,318.768L 475.425,345.602 Z "/>
		<Path Width="19.0648" Height="26.8348" Canvas.Left="487.035" Canvas.Top="322.02" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 496.568,348.855L 506.1,322.02L 487.035,322.02L 496.568,348.855 Z "/>
		<Path Width="19.0648" Height="26.8348" Canvas.Left="511.431" Canvas.Top="322.02" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 520.963,348.855L 530.495,322.02L 511.431,322.02L 520.963,348.855 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="534.2" Canvas.Top="317.954" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 543.732,344.789L 553.264,317.954L 534.2,317.954L 543.732,344.789 Z "/>
		<Path Width="11.3845" Height="25.2084" Canvas.Left="617.299" Canvas.Top="562.253" Stretch="Fill" Fill="#FF000000" Data="F1 M 626.244,587.462L 628.683,562.253L 617.299,563.066"/>
		<Path Width="28.4612" Height="15.4503" Canvas.Left="671.155" Canvas.Top="514.007" Stretch="Fill" Fill="#FF000000" Data="F1 M 699.616,529.457L 671.155,514.007L 671.155,527.831"/>
		<Path Width="26.8348" Height="29.4775" Canvas.Left="648.126" Canvas.Top="544.952" Stretch="Fill" Fill="#FF000000" Data="F1 M 674.961,574.43L 658.697,544.952L 648.126,558.166"/>
	</Canvas>
	<Canvas x:Name="Layer_1" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
		<Path Width="494.257" Height="525.31" Canvas.Left="-62.6185" Canvas.Top="-26.4125" Stretch="Fill" Data="F1 M 181.162,-26.3932C 317.634,-28.1332 429.766,88.0424 431.616,233.092C 433.465,378.142 324.331,497.139 187.859,498.879C 51.386,500.619 -60.746,384.443 -62.5954,239.393C -64.4447,94.3434 44.6891,-24.6533 181.162,-26.3932 Z ">
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.499989" RadiusY="0.500009" Center="0.499442,0.458844" GradientOrigin="0.499442,0.458844">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0.00847458"/>
						<GradientStop Color="#FF14D800" Offset="0.728814"/>
						<GradientStop Color="#FF0D8301" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<SkewTransform CenterX="0.499442" CenterY="0.458844" AngleX="0.08907" AngleY="0"/>
							<RotateTransform CenterX="0.499442" CenterY="0.458844" Angle="-0.687271"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Ellipse Width="241.722" Height="251.191" Canvas.Left="67.4443" Canvas.Top="19.8926" Stretch="Fill" StrokeThickness="5" StrokeLineJoin="Round">
			<Ellipse.Stroke>
				<RadialGradientBrush RadiusX="0.509243" RadiusY="0.490047" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FFFFFFFF" Offset="0"/>
						<GradientStop Color="#FF817F7F" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Stroke>
			<Ellipse.Fill>
				<RadialGradientBrush RadiusX="0.509243" RadiusY="0.490047" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF000000" Offset="0"/>
						<GradientStop Color="#FF000000" Offset="0.177966"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.199153"/>
						<GradientStop Color="#FEFFFFFF" Offset="0.25"/>
						<GradientStop Color="#FEFF0000" Offset="0.275424"/>
						<GradientStop Color="#FFFF0000" Offset="0.34322"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.36017"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.677966"/>
						<GradientStop Color="#FF838383" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Fill>
		</Ellipse>
		<Path Width="262" Height="114.346" Canvas.Left="46.3333" Canvas.Top="284.054" Stretch="Fill" StrokeThickness="22" StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FF000000" Data="F1 M 57.3333,308.387C 122.667,312.387 142.667,335.054 196,332.387C 249.333,329.72 297.333,295.054 297.333,295.054C 297.333,295.054 245.333,381.72 201.333,387.054C 157.333,392.387 105.333,334.609 57.3333,308.387 Z "/>
		<Path Width="31.2598" Height="44" Canvas.Left="86.0735" Canvas.Top="320.387" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 101.703,364.387L 117.333,320.387L 86.0735,320.387L 101.703,364.387 Z "/>
		<Path Width="31.2598" Height="44" Canvas.Left="121.037" Canvas.Top="325.054" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 136.667,369.054L 152.297,325.054L 121.037,325.054L 136.667,369.054 Z "/>
		<Path Width="31.2598" Height="44" Canvas.Left="155.703" Canvas.Top="330.387" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 171.333,374.387L 186.963,330.387L 155.703,330.387L 171.333,374.387 Z "/>
		<Path Width="31.2598" Height="44" Canvas.Left="195.703" Canvas.Top="330.387" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 211.333,374.387L 226.963,330.387L 195.703,330.387L 211.333,374.387 Z "/>
		<Path Width="31.2598" Height="44" Canvas.Left="233.037" Canvas.Top="323.72" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 248.667,367.72L 264.297,323.72L 233.037,323.72L 248.667,367.72 Z "/>
		<Path Width="168" Height="313.333" Canvas.Left="-90" Canvas.Top="405.054" Stretch="Fill" Data="F1 M 17.3333,411.054C 17.3333,411.054 -106.667,497.72 6.66667,565.72C 120,633.72 -80.88,634 -81.3333,631.054C -84,613.72 -84,647.054 -84,647.054L 0,647.054L -64,680.387L -49.3333,695.054L 9.33333,652.387L -15.569,710.116L -1.33333,712.387L 18.6667,643.054L 72,588.387C 72,588.387 -9.33333,513.72 -9.33333,512.387C -9.33333,511.054 54.6667,445.72 54.6667,445.72L 17.3333,411.054 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.849206" RadiusY="0.455319" Center="0.575397,0.540426" GradientOrigin="0.575397,0.540426">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF119E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.849206" RadiusY="0.455319" Center="0.575397,0.540426" GradientOrigin="0.575397,0.540426">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF2FFF00" Offset="0.00847458"/>
						<GradientStop Color="#FF119E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="44" Height="22.6666" Canvas.Left="-130.667" Canvas.Top="627.054" Stretch="Fill" Fill="#FF000000" Data="F1 M -130.667,639.054L -86.6667,649.72L -86.6667,627.054L -130.667,639.054 Z "/>
		<Path Width="48" Height="52" Canvas.Left="-94.6667" Canvas.Top="679.054" Stretch="Fill" Fill="#FF000000" Data="F1 M -94.6667,731.054L -46.6667,695.054L -65.3334,679.054"/>
		<Path Width="28" Height="48.6729" Canvas.Left="-26.6667" Canvas.Top="708.387" Stretch="Fill" Fill="#FF000000" Data="F1 M -26.6667,757.06L 1.33332,713.72L -18.6667,708.387"/>
		<Path Width="168" Height="313.333" Canvas.Left="283.333" Canvas.Top="391.06" Stretch="Fill" Data="F1 M 344,397.06C 344,397.06 468,483.727 354.667,551.727C 241.333,619.727 442.213,620.007 442.667,617.06C 445.333,599.727 445.333,633.06 445.333,633.06L 361.333,633.06L 425.333,666.393L 410.667,681.06L 352,638.393L 376.902,696.123L 362.667,698.393L 342.667,629.06L 289.333,574.393C 289.333,574.393 370.667,499.727 370.667,498.393C 370.667,497.06 306.667,431.727 306.667,431.727L 344,397.06 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.849206" RadiusY="0.455319" Center="0.424603,0.540425" GradientOrigin="0.424603,0.540425">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.424603" CenterY="0.540425" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.849206" RadiusY="0.455319" Center="0.424603,0.540425" GradientOrigin="0.424603,0.540425">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.424603" CenterY="0.540425" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="18.6667" Height="41.3333" Canvas.Left="360" Canvas.Top="698.054" Stretch="Fill" Fill="#FF000000" Data="F1 M 374.667,739.387L 378.667,698.054L 360,699.387"/>
		<Path Width="46.6667" Height="25.3334" Canvas.Left="446.667" Canvas.Top="612.387" Stretch="Fill" Fill="#FF000000" Data="F1 M 493.333,637.72L 446.667,612.387L 446.667,635.054"/>
		<Path Width="44" Height="48.3333" Canvas.Left="410" Canvas.Top="664.22" Stretch="Fill" Fill="#FF000000" Data="F1 M 454,712.554L 427.333,664.22L 410,685.887"/>
	</Canvas>
	<Canvas x:Name="Layer_3" Width="800" Height="800" Canvas.Left="0" Canvas.Top="0">
		<Path Width="107.141" Height="195.777" Canvas.Left="293.128" Canvas.Top="652.311" Stretch="Fill" Data="F1 M 360.929,658.311C 360.929,658.311 285.304,711.167 354.424,752.639C 423.543,794.111 301.031,794.282 300.754,792.485C 299.128,781.913 299.128,802.243 299.128,802.243L 350.358,802.243L 311.325,822.572L 320.27,831.517L 356.05,805.495L 340.863,840.703L 349.545,842.088L 361.742,799.803L 394.269,766.463C 394.269,766.463 344.666,720.925 344.666,720.112C 344.666,719.299 383.698,679.453 383.698,679.453L 360.929,658.311 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444431" Center="0.572102,0.539459" GradientOrigin="0.572102,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF119E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444431" Center="0.572102,0.539459" GradientOrigin="0.572102,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF2FFF00" Offset="0.00847458"/>
						<GradientStop Color="#FF119E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="17.0767" Height="29.6846" Canvas.Left="334.094" Canvas.Top="839.649" Stretch="Fill" Fill="#FF000000" Data="F1 M 334.094,869.333L 351.171,842.901L 338.973,839.649"/>
		<Path Width="26.8348" Height="13.824" Canvas.Left="270.667" Canvas.Top="790.045" Stretch="Fill" Fill="#FF000000" Data="F1 M 270.667,797.364L 297.501,803.869L 297.501,790.045L 270.667,797.364 Z "/>
		<Path Width="29.2743" Height="31.7138" Canvas.Left="292.622" Canvas.Top="821.759" Stretch="Fill" Fill="#FF000000" Data="F1 M 292.622,853.473L 321.897,831.517L 310.512,821.759"/>
		<Path Width="107.141" Height="195.777" Canvas.Left="533.483" Canvas.Top="656.443" Stretch="Fill" Data="F1 M 572.823,662.443C 572.823,662.443 648.449,715.299 579.329,756.771C 510.209,798.243 632.722,798.414 632.998,796.617C 634.625,786.045 634.625,806.375 634.625,806.375L 583.395,806.375L 622.427,826.704L 613.482,835.649L 577.702,809.628L 592.89,844.835L 584.208,846.22L 572.01,803.935L 539.483,770.595C 539.483,770.595 589.087,725.057 589.087,724.244C 589.087,723.431 550.055,683.585 550.055,683.585L 572.823,662.443 Z " StrokeThickness="12" StrokeLineJoin="Round">
			<Path.Stroke>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444432" Center="0.427898,0.539459" GradientOrigin="0.427898,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF17FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.427898" CenterY="0.539459" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Stroke>
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.812101" RadiusY="0.444432" Center="0.427898,0.539459" GradientOrigin="0.427898,0.539459">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0"/>
						<GradientStop Color="#FF1F9E03" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<RotateTransform CenterX="0.427898" CenterY="0.539459" Angle="180"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Path Width="301.438" Height="320.377" Canvas.Left="318.835" Canvas.Top="386.175" Stretch="Fill" Data="F1 M 467.511,386.187C 550.743,385.126 619.131,455.979 620.259,544.442C 621.386,632.905 554.828,705.479 471.596,706.54C 388.364,707.601 319.977,636.748 318.849,548.285C 317.721,459.822 384.279,387.248 467.511,386.187 Z ">
			<Path.Fill>
				<RadialGradientBrush RadiusX="0.499989" RadiusY="0.500009" Center="0.499442,0.458845" GradientOrigin="0.499442,0.458845">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF00FF00" Offset="0.00847458"/>
						<GradientStop Color="#FF14D800" Offset="0.728814"/>
						<GradientStop Color="#FF0D8301" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup>
							<SkewTransform CenterX="0.499442" CenterY="0.458845" AngleX="0.0890222" AngleY="0"/>
							<RotateTransform CenterX="0.499442" CenterY="0.458845" Angle="-0.687312"/>
						</TransformGroup>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Path.Fill>
		</Path>
		<Ellipse Width="149.372" Height="155.147" Canvas.Left="397.182" Canvas.Top="413.441" Stretch="Fill" StrokeThickness="5" StrokeLineJoin="Round">
			<Ellipse.Stroke>
				<RadialGradientBrush RadiusX="0.502593" RadiusY="0.483886" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FFFFFFFF" Offset="0"/>
						<GradientStop Color="#FF817F7F" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Stroke>
			<Ellipse.Fill>
				<RadialGradientBrush RadiusX="0.502593" RadiusY="0.483886" Center="0.5,0.5" GradientOrigin="0.5,0.5">
					<RadialGradientBrush.GradientStops>
						<GradientStop Color="#FF000000" Offset="0"/>
						<GradientStop Color="#FF000000" Offset="0.177966"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.199153"/>
						<GradientStop Color="#FEFFFFFF" Offset="0.25"/>
						<GradientStop Color="#FEFF0000" Offset="0.275424"/>
						<GradientStop Color="#FFFF0000" Offset="0.34322"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.36017"/>
						<GradientStop Color="#FFFFFFFF" Offset="0.677966"/>
						<GradientStop Color="#FF838383" Offset="1"/>
					</RadialGradientBrush.GradientStops>
					<RadialGradientBrush.RelativeTransform>
						<TransformGroup/>
					</RadialGradientBrush.RelativeTransform>
				</RadialGradientBrush>
			</Ellipse.Fill>
		</Ellipse>
		<Path Width="155.371" Height="65.3198" Canvas.Left="387.491" Canvas.Top="577.731" Stretch="Fill" StrokeThickness="9" StrokeLineJoin="Round" Stroke="#FF000000" Fill="#FF000000" Data="F1 M 391.991,590.363C 431.836,592.803 444.034,606.627 476.561,605C 509.088,603.374 538.362,582.231 538.362,582.231C 538.362,582.231 506.648,635.088 479.814,638.34C 452.979,641.593 421.265,606.355 391.991,590.363 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="409.519" Canvas.Top="597.682" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 419.051,624.516L 428.584,597.682L 409.519,597.682L 419.051,624.516 Z "/>
		<Path Width="19.0648" Height="26.8348" Canvas.Left="430.842" Canvas.Top="600.528" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 440.375,627.362L 449.907,600.528L 430.842,600.528L 440.375,627.362 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="451.985" Canvas.Top="603.78" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 461.517,630.615L 471.05,603.78L 451.985,603.78L 461.517,630.615 Z "/>
		<Path Width="19.0648" Height="26.8347" Canvas.Left="476.38" Canvas.Top="603.78" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 485.913,630.615L 495.445,603.78L 476.38,603.78L 485.913,630.615 Z "/>
		<Path Width="19.0648" Height="26.8348" Canvas.Left="499.149" Canvas.Top="599.715" Stretch="Fill" Fill="#FFFFFFFF" Data="F1 M 508.681,626.549L 518.214,599.715L 499.149,599.715L 508.681,626.549 Z "/>
		<Path Width="11.3845" Height="25.2084" Canvas.Left="582.248" Canvas.Top="844.013" Stretch="Fill" Fill="#FF000000" Data="F1 M 591.193,869.222L 593.633,844.013L 582.248,844.826"/>
		<Path Width="28.4611" Height="15.4503" Canvas.Left="636.104" Canvas.Top="795.767" Stretch="Fill" Fill="#FF000000" Data="F1 M 664.566,811.217L 636.104,795.767L 636.104,809.591"/>
		<Path Width="26.8348" Height="29.4776" Canvas.Left="613.076" Canvas.Top="826.712" Stretch="Fill" Fill="#FF000000" Data="F1 M 639.91,856.19L 623.647,826.712L 613.076,839.926"/>
	</Canvas>
</Canvas>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Engineer
Switzerland Switzerland
Daniel is a former senior engineer in Technology and Research at the Office of the CTO at Microsoft, working on next generation systems.

Previously Daniel was a nine-time Microsoft MVP and co-founder of Outcoder, a Swiss software and consulting company.

Daniel is the author of Windows Phone 8 Unleashed and Windows Phone 7.5 Unleashed, both published by SAMS.

Daniel is the developer behind several acclaimed mobile apps including Surfy Browser for Android and Windows Phone. Daniel is the creator of a number of popular open-source projects, most notably Codon.

Would you like Daniel to bring value to your organisation? Please contact

Blog | Twitter


Xamarin Experts
Windows 10 Experts

Comments and Discussions