Home

Awesome

ShapeControl.Forms

<img src="ScreenShots/IMG_E1117.JPG" width="50%" height="50%" align="right"/>

Xamarin.Forms plugin to draw shapes such as circle, rounded rectangle, oval and so on.

Supports Android, iOS and Unified Windows Platform (UWP, UAP).

NuGet

Features

Support Platforms

Setup

Install the nuget package in portable and all platform specific projects..

Android

In MainActivity.cs file

	Stormlion.ShapeControl.Droid.Platform.Init(this);

iOS

In AppDelegate.cs file

	Stormlion.ShapeControl.iOS.Platform.Init();

UWP

In App.xaml.cs file

	List<Assembly> assebliesToInclude = new List<Assembly>();

	assebliesToInclude.Add(typeof(Stormlion.ShapeControl.UWP.Platform).GetTypeInfo().Assembly);

	Xamarin.Forms.Forms.Init(e, assebliesToInclude);

Usage

Circle Example

    <shapes:Circle>
        <shapes:Circle.Paint>
            <shapes:SSPaint BorderWidth="1" 
                            BorderColor="Red"
                            FillColor="Yellow"
                            />
        </shapes:Circle.Paint>
    </shapes:Circle>

Oval with Blue Solid Color

    <shapes:Oval>
        <shapes:Oval.Paint>
            <shapes:SSPaint FillColor="Blue"
                            />
        </shapes:Oval.Paint>
    </shapes:Oval>

RoundRect with Gridient Color

    <shapes:RoundRect RadiusX="30"
                      RadiusY="30"
                      >
        <shapes:RoundRect.Paint>
            <shapes:SSPaint BorderWidth="10"
                            FillColor="Transparent"
                            >
                <shapes:SSPaint.BorderShader>
                    <skiaSharp:SKShader x:FactoryMethod="CreateLinearGradient"
                                        >
                        <x:Arguments>
                            <skiaSharp:SKPoint>
                                <x:Arguments>
                                    <x:Single>0</x:Single>
                                    <x:Single>0</x:Single>
                                </x:Arguments>
                            </skiaSharp:SKPoint>
                            <skiaSharp:SKPoint>
                                <x:Arguments>
                                    <x:Single>255</x:Single>
                                    <x:Single>0</x:Single>
                                </x:Arguments>
                            </skiaSharp:SKPoint>
                            <x:Array Type="{x:Type skiaSharp:SKColor}">
                                <shapes:SKColorMarkup Value="Blue" />
                                <shapes:SKColorMarkup Value="Red" />
                            </x:Array>
                            <x:Array Type="{x:Type x:Single}">
                                <x:Single>0</x:Single>
                                <x:Single>1</x:Single>
                            </x:Array>
                            <skiaSharp:SKShaderTileMode>
                                Clamp
                            </skiaSharp:SKShaderTileMode>
                        </x:Arguments>
                    </skiaSharp:SKShader>                                
                </shapes:SSPaint.BorderShader>
            </shapes:SSPaint>
        </shapes:RoundRect.Paint>
    </shapes:RoundRect>

Borderless Entry

	<shapes:SSEntry Text="No Border Entry" />

Contributions

Contributions are welcome!