diff --git a/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Android/Resources/Resource.Designer.cs b/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Android/Resources/Resource.Designer.cs
index 83a8b3dbc..055b91147 100644
--- a/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Android/Resources/Resource.Designer.cs
+++ b/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Android/Resources/Resource.Designer.cs
@@ -1,15 +1,15 @@
#pragma warning disable 1591
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
+// ------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Mono Runtime Version: 4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+// ------------------------------------------------------------------------------
-[assembly: global::Android.Runtime.ResourceDesignerAttribute("SkiaSharpSample.FormsSample.Platform.Resource", IsApplication=true)]
+[assembly: Android.Runtime.ResourceDesignerAttribute("SkiaSharpSample.FormsSample.Platform.Resource", IsApplication=true)]
namespace SkiaSharpSample.FormsSample.Platform
{
@@ -4210,7 +4210,8 @@ namespace SkiaSharpSample.FormsSample.Platform
public partial class Styleable
{
- public static int[] ActionBar = new int[] {
+ public static int[] ActionBar = new int[]
+ {
2130772007,
2130772009,
2130772010,
@@ -4320,13 +4321,15 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 5
public const int ActionBar_titleTextStyle = 5;
- public static int[] ActionBarLayout = new int[] {
+ public static int[] ActionBarLayout = new int[]
+ {
16842931};
// aapt resource value: 0
public const int ActionBarLayout_android_layout_gravity = 0;
- public static int[] ActionMenuItemView = new int[] {
+ public static int[] ActionMenuItemView = new int[]
+ {
16843071};
// aapt resource value: 0
@@ -4334,7 +4337,8 @@ namespace SkiaSharpSample.FormsSample.Platform
public static int[] ActionMenuView;
- public static int[] ActionMode = new int[] {
+ public static int[] ActionMode = new int[]
+ {
2130772007,
2130772013,
2130772014,
@@ -4360,7 +4364,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int ActionMode_titleTextStyle = 1;
- public static int[] ActivityChooserView = new int[] {
+ public static int[] ActivityChooserView = new int[]
+ {
2130772035,
2130772036};
@@ -4370,7 +4375,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 0
public const int ActivityChooserView_initialActivityCount = 0;
- public static int[] AlertDialog = new int[] {
+ public static int[] AlertDialog = new int[]
+ {
16842994,
2130772037,
2130772038,
@@ -4396,7 +4402,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 4
public const int AlertDialog_singleChoiceItemLayout = 4;
- public static int[] AppBarLayout = new int[] {
+ public static int[] AppBarLayout = new int[]
+ {
16842964,
2130772032,
2130772215};
@@ -4410,7 +4417,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int AppBarLayout_expanded = 2;
- public static int[] AppBarLayout_LayoutParams = new int[] {
+ public static int[] AppBarLayout_LayoutParams = new int[]
+ {
2130772216,
2130772217};
@@ -4420,7 +4428,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int AppBarLayout_LayoutParams_layout_scrollInterpolator = 1;
- public static int[] AppCompatImageView = new int[] {
+ public static int[] AppCompatImageView = new int[]
+ {
16843033,
2130772042};
@@ -4430,7 +4439,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int AppCompatImageView_srcCompat = 1;
- public static int[] AppCompatTextView = new int[] {
+ public static int[] AppCompatTextView = new int[]
+ {
16842804,
2130772043};
@@ -4440,7 +4450,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int AppCompatTextView_textAllCaps = 1;
- public static int[] AppCompatTheme = new int[] {
+ public static int[] AppCompatTheme = new int[]
+ {
16842839,
16842926,
2130772044,
@@ -4890,7 +4901,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 3
public const int AppCompatTheme_windowNoTitle = 3;
- public static int[] BottomSheetBehavior_Params = new int[] {
+ public static int[] BottomSheetBehavior_Params = new int[]
+ {
2130772218,
2130772219};
@@ -4900,13 +4912,15 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 0
public const int BottomSheetBehavior_Params_behavior_peekHeight = 0;
- public static int[] ButtonBarLayout = new int[] {
+ public static int[] ButtonBarLayout = new int[]
+ {
2130772154};
// aapt resource value: 0
public const int ButtonBarLayout_allowStacking = 0;
- public static int[] CardView = new int[] {
+ public static int[] CardView = new int[]
+ {
16843071,
16843072,
2130771995,
@@ -4960,7 +4974,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 11
public const int CardView_contentPaddingTop = 11;
- public static int[] CollapsingAppBarLayout_LayoutParams = new int[] {
+ public static int[] CollapsingAppBarLayout_LayoutParams = new int[]
+ {
2130772220,
2130772221};
@@ -4970,7 +4985,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int CollapsingAppBarLayout_LayoutParams_layout_collapseParallaxMultiplier = 1;
- public static int[] CollapsingToolbarLayout = new int[] {
+ public static int[] CollapsingToolbarLayout = new int[]
+ {
2130772009,
2130772222,
2130772223,
@@ -5028,7 +5044,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 10
public const int CollapsingToolbarLayout_toolbarId = 10;
- public static int[] CompoundButton = new int[] {
+ public static int[] CompoundButton = new int[]
+ {
16843015,
2130772155,
2130772156};
@@ -5042,7 +5059,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int CompoundButton_buttonTintMode = 2;
- public static int[] CoordinatorLayout = new int[] {
+ public static int[] CoordinatorLayout = new int[]
+ {
2130772235,
2130772236};
@@ -5052,7 +5070,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int CoordinatorLayout_statusBarBackground = 1;
- public static int[] CoordinatorLayout_LayoutParams = new int[] {
+ public static int[] CoordinatorLayout_LayoutParams = new int[]
+ {
16842931,
2130772237,
2130772238,
@@ -5074,7 +5093,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 3
public const int CoordinatorLayout_LayoutParams_layout_keyline = 3;
- public static int[] DesignTheme = new int[] {
+ public static int[] DesignTheme = new int[]
+ {
2130772241,
2130772242,
2130772243};
@@ -5088,7 +5108,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int DesignTheme_textColorError = 2;
- public static int[] DrawerArrowToggle = new int[] {
+ public static int[] DrawerArrowToggle = new int[]
+ {
2130772157,
2130772158,
2130772159,
@@ -5122,7 +5143,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 7
public const int DrawerArrowToggle_thickness = 7;
- public static int[] FloatingActionButton = new int[] {
+ public static int[] FloatingActionButton = new int[]
+ {
2130772032,
2130772213,
2130772214,
@@ -5156,7 +5178,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 7
public const int FloatingActionButton_useCompatPadding = 7;
- public static int[] ForegroundLinearLayout = new int[] {
+ public static int[] ForegroundLinearLayout = new int[]
+ {
16843017,
16843264,
2130772249};
@@ -5170,7 +5193,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int ForegroundLinearLayout_foregroundInsidePadding = 2;
- public static int[] LinearLayoutCompat = new int[] {
+ public static int[] LinearLayoutCompat = new int[]
+ {
16842927,
16842948,
16843046,
@@ -5208,7 +5232,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 7
public const int LinearLayoutCompat_showDividers = 7;
- public static int[] LinearLayoutCompat_Layout = new int[] {
+ public static int[] LinearLayoutCompat_Layout = new int[]
+ {
16842931,
16842996,
16842997,
@@ -5226,7 +5251,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int LinearLayoutCompat_Layout_android_layout_width = 1;
- public static int[] ListPopupWindow = new int[] {
+ public static int[] ListPopupWindow = new int[]
+ {
16843436,
16843437};
@@ -5236,7 +5262,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int ListPopupWindow_android_dropDownVerticalOffset = 1;
- public static int[] MediaRouteButton = new int[] {
+ public static int[] MediaRouteButton = new int[]
+ {
16843071,
16843072,
2130771994};
@@ -5250,7 +5277,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int MediaRouteButton_externalRouteEnabledDrawable = 2;
- public static int[] MenuGroup = new int[] {
+ public static int[] MenuGroup = new int[]
+ {
16842766,
16842960,
16843156,
@@ -5276,7 +5304,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int MenuGroup_android_visible = 2;
- public static int[] MenuItem = new int[] {
+ public static int[] MenuItem = new int[]
+ {
16842754,
16842766,
16842960,
@@ -5346,7 +5375,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 13
public const int MenuItem_showAsAction = 13;
- public static int[] MenuView = new int[] {
+ public static int[] MenuView = new int[]
+ {
16842926,
16843052,
16843053,
@@ -5380,7 +5410,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 7
public const int MenuView_preserveIconSpacing = 7;
- public static int[] NavigationView = new int[] {
+ public static int[] NavigationView = new int[]
+ {
16842964,
16842973,
16843039,
@@ -5422,7 +5453,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 4
public const int NavigationView_menu = 4;
- public static int[] PopupWindow = new int[] {
+ public static int[] PopupWindow = new int[]
+ {
16843126,
2130772173};
@@ -5432,13 +5464,15 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 1
public const int PopupWindow_overlapAnchor = 1;
- public static int[] PopupWindowBackgroundState = new int[] {
+ public static int[] PopupWindowBackgroundState = new int[]
+ {
2130772174};
// aapt resource value: 0
public const int PopupWindowBackgroundState_state_above_anchor = 0;
- public static int[] RecyclerView = new int[] {
+ public static int[] RecyclerView = new int[]
+ {
16842948,
2130771968,
2130771969,
@@ -5460,19 +5494,22 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 4
public const int RecyclerView_stackFromEnd = 4;
- public static int[] ScrimInsetsFrameLayout = new int[] {
+ public static int[] ScrimInsetsFrameLayout = new int[]
+ {
2130772256};
// aapt resource value: 0
public const int ScrimInsetsFrameLayout_insetForeground = 0;
- public static int[] ScrollingViewBehavior_Params = new int[] {
+ public static int[] ScrollingViewBehavior_Params = new int[]
+ {
2130772257};
// aapt resource value: 0
public const int ScrollingViewBehavior_Params_behavior_overlapTop = 0;
- public static int[] SearchView = new int[] {
+ public static int[] SearchView = new int[]
+ {
16842970,
16843039,
16843296,
@@ -5542,7 +5579,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 12
public const int SearchView_voiceIcon = 12;
- public static int[] SnackbarLayout = new int[] {
+ public static int[] SnackbarLayout = new int[]
+ {
16843039,
2130772032,
2130772258};
@@ -5556,7 +5594,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int SnackbarLayout_maxActionInlineWidth = 2;
- public static int[] Spinner = new int[] {
+ public static int[] Spinner = new int[]
+ {
16842930,
16843126,
16843131,
@@ -5578,7 +5617,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 4
public const int Spinner_popupTheme = 4;
- public static int[] SwitchCompat = new int[] {
+ public static int[] SwitchCompat = new int[]
+ {
16843044,
16843045,
16843074,
@@ -5620,7 +5660,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 3
public const int SwitchCompat_track = 3;
- public static int[] TabItem = new int[] {
+ public static int[] TabItem = new int[]
+ {
16842754,
16842994,
16843087};
@@ -5634,7 +5675,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int TabItem_android_text = 2;
- public static int[] TabLayout = new int[] {
+ public static int[] TabLayout = new int[]
+ {
2130772259,
2130772260,
2130772261,
@@ -5700,7 +5742,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 9
public const int TabLayout_tabTextColor = 9;
- public static int[] TextAppearance = new int[] {
+ public static int[] TextAppearance = new int[]
+ {
16842901,
16842902,
16842903,
@@ -5738,7 +5781,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 8
public const int TextAppearance_textAllCaps = 8;
- public static int[] TextInputLayout = new int[] {
+ public static int[] TextInputLayout = new int[]
+ {
16842906,
16843088,
2130772275,
@@ -5784,7 +5828,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int TextInputLayout_hintTextAppearance = 2;
- public static int[] Toolbar = new int[] {
+ public static int[] Toolbar = new int[]
+ {
16842927,
16843072,
2130772009,
@@ -5886,7 +5931,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 23
public const int Toolbar_titleTextColor = 23;
- public static int[] View = new int[] {
+ public static int[] View = new int[]
+ {
16842752,
16842970,
2130772210,
@@ -5908,7 +5954,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 4
public const int View_theme = 4;
- public static int[] ViewBackgroundHelper = new int[] {
+ public static int[] ViewBackgroundHelper = new int[]
+ {
16842964,
2130772213,
2130772214};
@@ -5922,7 +5969,8 @@ namespace SkiaSharpSample.FormsSample.Platform
// aapt resource value: 2
public const int ViewBackgroundHelper_backgroundTintMode = 2;
- public static int[] ViewStubCompat = new int[] {
+ public static int[] ViewStubCompat = new int[]
+ {
16842960,
16842994,
16842995};
diff --git a/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Mac.sln b/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Mac.sln
new file mode 100644
index 000000000..a489d595f
--- /dev/null
+++ b/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Mac.sln
@@ -0,0 +1,127 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Shared", "..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.shproj", "{509B233A-35A0-41CA-A585-0B1A9F79D470}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharpSample.FormsSample", "SkiaSharpSample.FormsSample\SkiaSharpSample.FormsSample.csproj", "{E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharpSample.FormsSample.Android", "SkiaSharpSample.FormsSample.Android\SkiaSharpSample.FormsSample.Android.csproj", "{B8A92B38-B7DB-450B-8D16-301404E9EADC}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharpSample.FormsSample.iOS", "SkiaSharpSample.FormsSample.iOS\SkiaSharpSample.FormsSample.iOS.csproj", "{05A70F82-973A-4402-ADB9-2684D5E9F0C8}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Platform.Shared", "..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.shproj", "{0CC41AB0-0C4C-4DAA-8F10-A249725EBF5D}"
+EndProject
+Global
+ GlobalSection(SharedMSBuildProjectFiles) = preSolution
+ ..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.projitems*{05a70f82-973a-4402-adb9-2684d5e9f0c8}*SharedItemsImports = 4
+ ..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.projitems*{0cc41ab0-0c4c-4daa-8f10-a249725ebf5d}*SharedItemsImports = 13
+ ..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{509b233a-35a0-41ca-a585-0b1a9f79d470}*SharedItemsImports = 13
+ ..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.projitems*{b8a92b38-b7db-450b-8d16-301404e9eadc}*SharedItemsImports = 4
+ ..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{e01fbaba-8da1-432b-9253-f4abe13a3a6a}*SharedItemsImports = 4
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|iPhone = Release|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x64.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x86.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|ARM.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhone.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x64.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x64.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x86.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x86.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|ARM.Build.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|ARM.Deploy.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|iPhone.Deploy.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|x64.Build.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|x64.Deploy.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|x86.Build.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Debug|x86.Deploy.0 = Debug|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|Any CPU.Deploy.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|ARM.ActiveCfg = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|ARM.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|ARM.Deploy.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|iPhone.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|iPhone.Deploy.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|x64.ActiveCfg = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|x64.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|x64.Deploy.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|x86.ActiveCfg = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|x86.Build.0 = Release|Any CPU
+ {B8A92B38-B7DB-450B-8D16-301404E9EADC}.Release|x86.Deploy.0 = Release|Any CPU
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|ARM.ActiveCfg = Debug|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|ARM.Build.0 = Debug|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|iPhone.ActiveCfg = Debug|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|iPhone.Build.0 = Debug|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|x64.Build.0 = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Debug|x86.Build.0 = Debug|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|Any CPU.Build.0 = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|ARM.ActiveCfg = Release|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|ARM.Build.0 = Release|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|iPhone.ActiveCfg = Release|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|iPhone.Build.0 = Release|iPhone
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|x64.ActiveCfg = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|x64.Build.0 = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|x86.ActiveCfg = Release|iPhoneSimulator
+ {05A70F82-973A-4402-ADB9-2684D5E9F0C8}.Release|x86.Build.0 = Release|iPhoneSimulator
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Windows.sln b/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Windows.sln
new file mode 100644
index 000000000..348c58c1c
--- /dev/null
+++ b/samples/SkiaSharpSample.FormsSample/SkiaSharpSample.FormsSample.Windows.sln
@@ -0,0 +1,100 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Shared", "..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.shproj", "{509B233A-35A0-41CA-A585-0B1A9F79D470}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharpSample.FormsSample", "SkiaSharpSample.FormsSample\SkiaSharpSample.FormsSample.csproj", "{E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkiaSharpSample.FormsSample.UWP", "SkiaSharpSample.FormsSample.UWP\SkiaSharpSample.FormsSample.UWP.csproj", "{99F08DB7-A06E-4814-BDD6-BB87DBE278AF}"
+EndProject
+Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SkiaSharpSample.Platform.Shared", "..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.shproj", "{0CC41AB0-0C4C-4DAA-8F10-A249725EBF5D}"
+EndProject
+Global
+ GlobalSection(SharedMSBuildProjectFiles) = preSolution
+ ..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.projitems*{0cc41ab0-0c4c-4daa-8f10-a249725ebf5d}*SharedItemsImports = 13
+ ..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{509b233a-35a0-41ca-a585-0b1a9f79d470}*SharedItemsImports = 13
+ ..\SkiaSharpSample.Platform.Shared\SkiaSharpSample.Platform.Shared.projitems*{99f08db7-a06e-4814-bdd6-bb87dbe278af}*SharedItemsImports = 4
+ ..\SkiaSharpSample.Shared\SkiaSharpSample.Shared.projitems*{e01fbaba-8da1-432b-9253-f4abe13a3a6a}*SharedItemsImports = 4
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|iPhone = Debug|iPhone
+ Debug|iPhoneSimulator = Debug|iPhoneSimulator
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|iPhone = Release|iPhone
+ Release|iPhoneSimulator = Release|iPhoneSimulator
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x64.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Debug|x86.Build.0 = Debug|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|ARM.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhone.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x64.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x64.Build.0 = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x86.ActiveCfg = Release|Any CPU
+ {E01FBABA-8DA1-432B-9253-F4ABE13A3A6A}.Release|x86.Build.0 = Release|Any CPU
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|Any CPU.Build.0 = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|Any CPU.Deploy.0 = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|ARM.ActiveCfg = Debug|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|ARM.Build.0 = Debug|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|ARM.Deploy.0 = Debug|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|iPhone.ActiveCfg = Debug|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|iPhone.Build.0 = Debug|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|iPhone.Deploy.0 = Debug|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|iPhoneSimulator.ActiveCfg = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|iPhoneSimulator.Build.0 = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|iPhoneSimulator.Deploy.0 = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|x64.ActiveCfg = Debug|x64
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|x64.Build.0 = Debug|x64
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|x64.Deploy.0 = Debug|x64
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|x86.ActiveCfg = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|x86.Build.0 = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Debug|x86.Deploy.0 = Debug|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|Any CPU.ActiveCfg = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|Any CPU.Build.0 = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|Any CPU.Deploy.0 = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|ARM.ActiveCfg = Release|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|ARM.Build.0 = Release|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|ARM.Deploy.0 = Release|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|iPhone.ActiveCfg = Release|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|iPhone.Build.0 = Release|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|iPhone.Deploy.0 = Release|ARM
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|iPhoneSimulator.ActiveCfg = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|iPhoneSimulator.Build.0 = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|iPhoneSimulator.Deploy.0 = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|x64.ActiveCfg = Release|x64
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|x64.Build.0 = Release|x64
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|x64.Deploy.0 = Release|x64
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|x86.ActiveCfg = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|x86.Build.0 = Release|x86
+ {99F08DB7-A06E-4814-BDD6-BB87DBE278AF}.Release|x86.Deploy.0 = Release|x86
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal