Add Xamarin.Forms.ControlGallery.WPF (#1337)
authorMohamed CHOUCHANE <mohamed.chouchane1990@gmail.com>
Thu, 7 Dec 2017 00:34:37 +0000 (01:34 +0100)
committerRui Marinho <me@ruimarinho.net>
Thu, 7 Dec 2017 00:34:37 +0000 (00:34 +0000)
16 files changed:
Xamarin.Forms.ControlGallery.WPF/App.config [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/App.xaml [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/App.xaml.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/MainWindow.xaml [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/MainWindow.xaml.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/OpenGLViewApp.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/OpenTK.dll.config [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/Properties/AssemblyInfo.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/Properties/Resources.Designer.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/Properties/Resources.resx [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/Properties/Settings.Designer.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/Properties/Settings.settings [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/StringProvider.cs [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/Xamarin.Forms.ControlGallery.WPF.csproj [new file with mode: 0644]
Xamarin.Forms.ControlGallery.WPF/packages.config [new file with mode: 0644]
Xamarin.Forms.sln

diff --git a/Xamarin.Forms.ControlGallery.WPF/App.config b/Xamarin.Forms.ControlGallery.WPF/App.config
new file mode 100644 (file)
index 0000000..bae5d6d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
+    </startup>
+</configuration>
diff --git a/Xamarin.Forms.ControlGallery.WPF/App.xaml b/Xamarin.Forms.ControlGallery.WPF/App.xaml
new file mode 100644 (file)
index 0000000..629e9f3
--- /dev/null
@@ -0,0 +1,14 @@
+<Application x:Class="Xamarin.Forms.ControlGallery.WPF.App"
+             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+             xmlns:local="clr-namespace:Xamarin.Forms.ControlGallery.WPF"
+             StartupUri="MainWindow.xaml">
+       <Application.Resources>
+               <ResourceDictionary>
+                       <ResourceDictionary.MergedDictionaries>
+                               <ResourceDictionary Source="/WPFLightToolkit;component/Assets/Default.xaml" />
+                       </ResourceDictionary.MergedDictionaries>
+                       <SolidColorBrush x:Key="AccentColor" Color="#303F9F" />
+               </ResourceDictionary>
+       </Application.Resources>
+</Application>
diff --git a/Xamarin.Forms.ControlGallery.WPF/App.xaml.cs b/Xamarin.Forms.ControlGallery.WPF/App.xaml.cs
new file mode 100644 (file)
index 0000000..e1ccf9c
--- /dev/null
@@ -0,0 +1,9 @@
+namespace Xamarin.Forms.ControlGallery.WPF
+{
+    /// <summary>
+    /// Logique d'interaction pour App.xaml
+    /// </summary>
+    public partial class App : System.Windows.Application
+       {
+       }
+}
diff --git a/Xamarin.Forms.ControlGallery.WPF/MainWindow.xaml b/Xamarin.Forms.ControlGallery.WPF/MainWindow.xaml
new file mode 100644 (file)
index 0000000..3440339
--- /dev/null
@@ -0,0 +1,10 @@
+<wpf:FormsApplicationPage x:Class="Xamarin.Forms.ControlGallery.WPF.MainWindow"
+        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+        xmlns:wpf="clr-namespace:Xamarin.Forms.Platform.WPF;assembly=Xamarin.Forms.Platform.WPF"
+        mc:Ignorable="d" WindowState="Normal" 
+        Title="PagesGallery WPF">
+
+</wpf:FormsApplicationPage>
diff --git a/Xamarin.Forms.ControlGallery.WPF/MainWindow.xaml.cs b/Xamarin.Forms.ControlGallery.WPF/MainWindow.xaml.cs
new file mode 100644 (file)
index 0000000..7a269ce
--- /dev/null
@@ -0,0 +1,19 @@
+using Xamarin.Forms.Platform.WPF;
+
+namespace Xamarin.Forms.ControlGallery.WPF
+{
+    /// <summary>
+    /// Logique d'interaction pour MainWindow.xaml
+    /// </summary>
+    public partial class MainWindow : FormsApplicationPage
+       {
+               public MainWindow()
+               {
+                       InitializeComponent();
+                       Xamarin.Forms.Forms.Init();
+                       FormsMaps.Init("");
+                       LoadApplication(new Controls.App());
+            //LoadApplication(new OpenGLViewApp());
+        }
+       }
+}
diff --git a/Xamarin.Forms.ControlGallery.WPF/OpenGLViewApp.cs b/Xamarin.Forms.ControlGallery.WPF/OpenGLViewApp.cs
new file mode 100644 (file)
index 0000000..5fb48a1
--- /dev/null
@@ -0,0 +1,116 @@
+using System;
+using OpenTK.Graphics.OpenGL;
+
+namespace Xamarin.Forms.ControlGallery.WPF
+{
+    public class OpenGLViewApp : Application
+    {
+        public OpenGLViewApp()
+        {
+            MainPage = new OpenGLViewSample();
+        }
+    }
+
+    public class OpenGLViewSample : ContentPage
+    {
+        private bool _initGl = false;
+        private int _viewportWidth;
+        private int _viewportHeight;
+        private uint _mProgramHandle;
+        private OpenGLView _openGLView = null;
+
+        public OpenGLViewSample()
+        {
+            Title = "OpenGLView Sample";
+
+            var titleLabel = new Label
+            {
+                Text = "OpenGLView",
+                FontSize = 36
+            };
+
+            _openGLView = new OpenGLView
+            {
+                HeightRequest = 300,
+                WidthRequest = 300,
+                HasRenderLoop = false
+            };
+
+            _openGLView.OnDisplay = r =>
+            {
+                if (!_initGl)
+                {
+                    double width_in_pixels = 300;
+                    double height_in_pixels = 300;
+
+                    InitGl((int)width_in_pixels, (int)height_in_pixels);
+                }
+
+                Render();
+            };
+
+            var stack = new StackLayout
+            {
+                Padding = new Size(12, 12),
+                Children = { titleLabel, _openGLView }
+            };
+
+            Content = stack;
+        }
+
+        void InitGl(int width, int height)
+        {
+            _viewportHeight = width;
+            _viewportWidth = height;
+
+            _mProgramHandle = (uint)GL.CreateProgram();
+            if (_mProgramHandle == 0)
+                throw new InvalidOperationException("Unable to create program");
+
+            GL.BindAttribLocation(_mProgramHandle, 0, "vPosition");
+            GL.LinkProgram(_mProgramHandle);
+
+            GL.Viewport(0, 0, _viewportWidth, _viewportHeight);
+
+            GL.UseProgram(_mProgramHandle);
+
+            _initGl = true;
+        }
+
+
+        void Render()
+        {
+            GL.ClearColor(0, 0, 0, 0);
+            GL.Clear(ClearBufferMask.ColorBufferBit);
+            GL.Color3(1.0f, 0.85f, 0.35f);
+            GL.Begin(BeginMode.Triangles);
+            GL.Vertex3(0.0, 0.6, 0.0);
+            GL.Vertex3(-0.2, -0.3, 0.0);
+            GL.Vertex3(0.2, -0.3, 0.0);
+            GL.End();
+            GL.Flush();
+        }
+    }
+
+    public class ReferenceTime
+    {
+        private static DateTime reference_time;
+        private static bool reference_time_set = false;
+
+        public static double GetTimeFromReferenceMs()
+        {
+            if (!reference_time_set)
+            {
+                reference_time = DateTime.Now;
+                reference_time_set = true;
+
+                return 0.0;
+            }
+
+            DateTime actual_time = DateTime.Now;
+            TimeSpan ts = new TimeSpan(actual_time.Ticks - reference_time.Ticks);
+
+            return ts.TotalMilliseconds;
+        }
+    }
+}
\ No newline at end of file
diff --git a/Xamarin.Forms.ControlGallery.WPF/OpenTK.dll.config b/Xamarin.Forms.ControlGallery.WPF/OpenTK.dll.config
new file mode 100644 (file)
index 0000000..7098d39
--- /dev/null
@@ -0,0 +1,25 @@
+<configuration>
+  <dllmap os="linux" dll="opengl32.dll" target="libGL.so.1"/>
+  <dllmap os="linux" dll="glu32.dll" target="libGLU.so.1"/>
+  <dllmap os="linux" dll="openal32.dll" target="libopenal.so.1"/>
+  <dllmap os="linux" dll="alut.dll" target="libalut.so.0"/>
+  <dllmap os="linux" dll="opencl.dll" target="libOpenCL.so"/>
+  <dllmap os="linux" dll="libX11" target="libX11.so.6"/>
+  <dllmap os="linux" dll="libXi" target="libXi.so.6"/>
+  <dllmap os="linux" dll="SDL2.dll" target="libSDL2-2.0.so.0"/>
+  <dllmap os="osx" dll="opengl32.dll" target="/System/Library/Frameworks/OpenGL.framework/OpenGL"/>
+  <dllmap os="osx" dll="openal32.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
+  <dllmap os="osx" dll="alut.dll" target="/System/Library/Frameworks/OpenAL.framework/OpenAL" />
+  <dllmap os="osx" dll="libGLES.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
+  <dllmap os="osx" dll="libGLESv1_CM.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
+  <dllmap os="osx" dll="libGLESv2.dll" target="/System/Library/Frameworks/OpenGLES.framework/OpenGLES" />
+  <dllmap os="osx" dll="opencl.dll" target="/System/Library/Frameworks/OpenCL.framework/OpenCL"/>
+  <dllmap os="osx" dll="SDL2.dll" target="libSDL2.dylib"/>
+  <!-- XQuartz compatibility (X11 on Mac) -->
+  <dllmap os="osx" dll="libGL.so.1" target="/usr/X11/lib/libGL.dylib"/>
+  <dllmap os="osx" dll="libX11" target="/usr/X11/lib/libX11.dylib"/>
+  <dllmap os="osx" dll="libXcursor.so.1" target="/usr/X11/lib/libXcursor.dylib"/>
+  <dllmap os="osx" dll="libXi" target="/usr/X11/lib/libXi.dylib"/>
+  <dllmap os="osx" dll="libXinerama" target="/usr/X11/lib/libXinerama.dylib"/>
+  <dllmap os="osx" dll="libXrandr.so.2" target="/usr/X11/lib/libXrandr.dylib"/>
+</configuration>
diff --git a/Xamarin.Forms.ControlGallery.WPF/Properties/AssemblyInfo.cs b/Xamarin.Forms.ControlGallery.WPF/Properties/AssemblyInfo.cs
new file mode 100644 (file)
index 0000000..5aabe3a
--- /dev/null
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// Les informations générales relatives à un assembly dépendent de
+// l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
+// associées à un assembly.
+[assembly: AssemblyTitle("Xamarin.Forms.ControlGallery.WPF")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Xamarin.Forms.ControlGallery.WPF")]
+[assembly: AssemblyCopyright("Copyright ©  2017")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
+// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
+// COM, affectez la valeur true à l'attribut ComVisible sur ce type.
+[assembly: ComVisible(false)]
+
+//Pour commencer à générer des applications localisables, définissez
+//<UICulture>CultureUtiliséePourCoder</UICulture> dans votre fichier .csproj
+//dans <PropertyGroup>.  Par exemple, si vous utilisez le français
+//dans vos fichiers sources, définissez <UICulture> à fr-FR. Puis, supprimez les marques de commentaire de
+//l'attribut NeutralResourceLanguage ci-dessous. Mettez à jour "fr-FR" dans
+//la ligne ci-après pour qu'elle corresponde au paramètre UICulture du fichier projet.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+       ResourceDictionaryLocation.None, //où se trouvent les dictionnaires de ressources spécifiques à un thème
+                                                                        //(utilisé si une ressource est introuvable dans la page,
+                                                                        // ou dictionnaires de ressources de l'application)
+       ResourceDictionaryLocation.SourceAssembly //où se trouve le dictionnaire de ressources générique
+                                                                                         //(utilisé si une ressource est introuvable dans la page,
+                                                                                         // dans l'application ou dans l'un des dictionnaires de ressources spécifiques à un thème)
+)]
+
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+//      Version principale
+//      Version secondaire
+//      Numéro de build
+//      Révision
+//
+// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
+// en utilisant '*', comme indiqué ci-dessous :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Xamarin.Forms.ControlGallery.WPF/Properties/Resources.Designer.cs b/Xamarin.Forms.ControlGallery.WPF/Properties/Resources.Designer.cs
new file mode 100644 (file)
index 0000000..7159ffb
--- /dev/null
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Ce code a été généré par un outil.
+//     Version du runtime :4.0.30319.42000
+//
+//     Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+//     le code est régénéré.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Xamarin.Forms.ControlGallery.WPF.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
+    /// </summary>
+    // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
+    // à l'aide d'un outil, tel que ResGen ou Visual Studio.
+    // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
+    // avec l'option /str ou régénérez votre projet VS.
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Xamarin.Forms.ControlGallery.WPF.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   Remplace la propriété CurrentUICulture du thread actuel pour toutes
+        ///   les recherches de ressources à l'aide de cette classe de ressource fortement typée.
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+    }
+}
diff --git a/Xamarin.Forms.ControlGallery.WPF/Properties/Resources.resx b/Xamarin.Forms.ControlGallery.WPF/Properties/Resources.resx
new file mode 100644 (file)
index 0000000..af7dbeb
--- /dev/null
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>
\ No newline at end of file
diff --git a/Xamarin.Forms.ControlGallery.WPF/Properties/Settings.Designer.cs b/Xamarin.Forms.ControlGallery.WPF/Properties/Settings.Designer.cs
new file mode 100644 (file)
index 0000000..45c87dc
--- /dev/null
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     Ce code a été généré par un outil.
+//     Version du runtime :4.0.30319.42000
+//
+//     Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+//     le code est régénéré.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Xamarin.Forms.ControlGallery.WPF.Properties {
+    
+    
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.3.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
+        
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+        
+        public static Settings Default {
+            get {
+                return defaultInstance;
+            }
+        }
+    }
+}
diff --git a/Xamarin.Forms.ControlGallery.WPF/Properties/Settings.settings b/Xamarin.Forms.ControlGallery.WPF/Properties/Settings.settings
new file mode 100644 (file)
index 0000000..033d7a5
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>
\ No newline at end of file
diff --git a/Xamarin.Forms.ControlGallery.WPF/StringProvider.cs b/Xamarin.Forms.ControlGallery.WPF/StringProvider.cs
new file mode 100644 (file)
index 0000000..f0d8bed
--- /dev/null
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Xamarin.Forms;
+using Xamarin.Forms.ControlGallery.WPF;
+using Xamarin.Forms.Controls;
+
+[assembly: Dependency(typeof(StringProvider))]
+namespace Xamarin.Forms.ControlGallery.WPF
+{
+       public class StringProvider : IStringProvider
+       {
+               public string CoreGalleryTitle
+               {
+                       get { return "WPF Core Gallery"; }
+               }
+       }
+}
diff --git a/Xamarin.Forms.ControlGallery.WPF/Xamarin.Forms.ControlGallery.WPF.csproj b/Xamarin.Forms.ControlGallery.WPF/Xamarin.Forms.ControlGallery.WPF.csproj
new file mode 100644 (file)
index 0000000..4382117
--- /dev/null
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{411B960D-6D30-4079-83B2-ABB9987D2EDF}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <RootNamespace>Xamarin.Forms.ControlGallery.WPF</RootNamespace>
+    <AssemblyName>Xamarin.Forms.ControlGallery.WPF</AssemblyName>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <WarningLevel>4</WarningLevel>
+    <TargetFrameworkProfile />
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.Maps.MapControl.WPF, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+      <HintPath>..\packages\Microsoft.Maps.MapControl.WPF.1.0.0.3\lib\net40-Client\Microsoft.Maps.MapControl.WPF.dll</HintPath>
+    </Reference>
+    <Reference Include="OpenTK, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
+      <HintPath>..\packages\OpenTK.3.0.0-pre\lib\net20\OpenTK.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="OpenTK.GLControl, Version=3.0.0.0, Culture=neutral, PublicKeyToken=bad199fe84eb3df4, processorArchitecture=MSIL">
+      <HintPath>..\packages\OpenTK.GLControl.3.0.0-pre\lib\net20\OpenTK.GLControl.dll</HintPath>
+      <Private>True</Private>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Xaml">
+      <RequiredTargetFramework>4.0</RequiredTargetFramework>
+    </Reference>
+    <Reference Include="WindowsBase" />
+    <Reference Include="PresentationCore" />
+    <Reference Include="PresentationFramework" />
+    <Reference Include="WpfLightToolkit, Version=1.0.0.27, Culture=neutral, processorArchitecture=MSIL">
+      <HintPath>..\packages\WpfLightToolkit.1.0.1\lib\net45\WpfLightToolkit.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </ApplicationDefinition>
+    <Compile Include="OpenGLViewApp.cs" />
+    <Compile Include="StringProvider.cs" />
+    <Page Include="MainWindow.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="MainWindow.xaml.cs">
+      <DependentUpon>MainWindow.xaml</DependentUpon>
+      <SubType>Code</SubType>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Properties\AssemblyInfo.cs">
+      <SubType>Code</SubType>
+    </Compile>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Resources.resx</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+    </EmbeddedResource>
+    <None Include="OpenTK.dll.config" />
+    <None Include="packages.config">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Xamarin.Forms.Controls\Xamarin.Forms.Controls.csproj">
+      <Project>{cb9c96ce-125c-4a68-b6a1-c3ff1fbf93e1}</Project>
+      <Name>Xamarin.Forms.Controls</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Xamarin.Forms.Core\Xamarin.Forms.Core.csproj">
+      <Project>{57b8b73d-c3b5-4c42-869e-7b2f17d354ac}</Project>
+      <Name>Xamarin.Forms.Core</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Xamarin.Forms.Maps.WPF\Xamarin.Forms.Maps.WPF.csproj">
+      <Project>{89b0db73-a32e-447c-9390-a2a59d89b2e4}</Project>
+      <Name>Xamarin.Forms.Maps.WPF</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Xamarin.Forms.Maps\Xamarin.Forms.Maps.csproj">
+      <Project>{7d13bac2-c6a4-416a-b07e-c169b199e52b}</Project>
+      <Name>Xamarin.Forms.Maps</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Xamarin.Forms.Platform.WPF\Xamarin.Forms.Platform.WPF.csproj">
+      <Project>{140bc260-8b15-4d3a-b1b0-ddd8072918cc}</Project>
+      <Name>Xamarin.Forms.Platform.WPF</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/Xamarin.Forms.ControlGallery.WPF/packages.config b/Xamarin.Forms.ControlGallery.WPF/packages.config
new file mode 100644 (file)
index 0000000..9177944
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<packages>
+  <package id="Microsoft.Maps.MapControl.WPF" version="1.0.0.3" targetFramework="net45" />
+  <package id="OpenTK" version="3.0.0-pre" targetFramework="net45" />
+  <package id="OpenTK.GLControl" version="3.0.0-pre" targetFramework="net45" />
+  <package id="WpfLightToolkit" version="1.0.1" targetFramework="net461" />
+</packages>
\ No newline at end of file
index 9474109..f196260 100644 (file)
@@ -143,6 +143,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Platform.WPF"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Maps.WPF", "Xamarin.Forms.Maps.WPF\Xamarin.Forms.Maps.WPF.csproj", "{89B0DB73-A32E-447C-9390-A2A59D89B2E4}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.ControlGallery.WPF", "Xamarin.Forms.ControlGallery.WPF\Xamarin.Forms.ControlGallery.WPF.csproj", "{411B960D-6D30-4079-83B2-ABB9987D2EDF}"
+EndProject
 Global
        GlobalSection(SharedMSBuildProjectFiles) = preSolution
                Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{0a39a74b-6f7a-4d41-84f2-b0ccdce899df}*SharedItemsImports = 4
@@ -2626,6 +2628,58 @@ Global
                {89B0DB73-A32E-447C-9390-A2A59D89B2E4}.Release|x64.Build.0 = Release|Any CPU
                {89B0DB73-A32E-447C-9390-A2A59D89B2E4}.Release|x86.ActiveCfg = Release|Any CPU
                {89B0DB73-A32E-447C-9390-A2A59D89B2E4}.Release|x86.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|ARM.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|Templates.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|Templates.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|x64.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Ad-Hoc|x86.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|Any CPU.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|ARM.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|ARM.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|iPhone.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|iPhone.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|Templates.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|Templates.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|x64.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|x64.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|x86.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.AppStore|x86.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|ARM.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|ARM.Build.0 = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|Templates.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|Templates.Build.0 = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|x64.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|x64.Build.0 = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|x86.ActiveCfg = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Debug|x86.Build.0 = Debug|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|Any CPU.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|ARM.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|ARM.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|iPhone.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|Templates.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|Templates.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|x64.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|x64.Build.0 = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|x86.ActiveCfg = Release|Any CPU
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF}.Release|x86.Build.0 = Release|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
@@ -2684,6 +2738,7 @@ Global
                {03A51E5B-0A1E-41F0-AAE3-4B19406F7340} = {4F5E2D21-17F6-4A42-B8FB-D03D82E24EC8}
                {140BC260-8B15-4D3A-B1B0-DDD8072918CC} = {29AC50BF-B4FB-450B-9386-0C5AD4B84226}
                {89B0DB73-A32E-447C-9390-A2A59D89B2E4} = {132FB9A4-613F-44CE-95D5-758D32D231DD}
+               {411B960D-6D30-4079-83B2-ABB9987D2EDF} = {4F5E2D21-17F6-4A42-B8FB-D03D82E24EC8}
        EndGlobalSection
        GlobalSection(ExtensibilityGlobals) = postSolution
                SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0}