diff --git a/Caching/FileDbCache/FileDbCache.cs b/Caching/FileDbCache/FileDbCache.cs
index bcd052e8..0edd4fba 100644
--- a/Caching/FileDbCache/FileDbCache.cs
+++ b/Caching/FileDbCache/FileDbCache.cs
@@ -397,7 +397,7 @@ namespace Caching
{
if (fileDb.IsOpen)
{
- Trace.TraceWarning("FileDbCache is reindexing database");
+ Trace.TraceWarning("FileDbCache is reindexing the cache database");
fileDb.Reindex();
return true;
}
diff --git a/Caching/FileDbCache/Properties/AssemblyInfo.cs b/Caching/FileDbCache/Properties/AssemblyInfo.cs
index 77a22a9e..bca33da7 100644
--- a/Caching/FileDbCache/Properties/AssemblyInfo.cs
+++ b/Caching/FileDbCache/Properties/AssemblyInfo.cs
@@ -8,7 +8,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("FileDbCache")]
[assembly: AssemblyDescription("ObjectCache implementation based on EzTools FileDb")]
[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
+[assembly: AssemblyCompany("Clemens Fischer")]
[assembly: AssemblyProduct("FileDbCache")]
[assembly: AssemblyCopyright("Copyright © 2012 Clemens Fischer")]
[assembly: AssemblyTrademark("")]
diff --git a/MapControl.sln b/MapControl.sln
index 3162d326..e90ceadf 100644
--- a/MapControl.sln
+++ b/MapControl.sln
@@ -3,10 +3,12 @@ Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MapControl", "MapControl\MapControl.csproj", "{06481252-2310-414A-B9FC-D5739FDF6BD3}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestApplication", "TestApplication\TestApplication.csproj", "{CCBCDAE5-E68F-43A8-930A-0749E476D29D}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileDbCache", "Caching\FileDbCache\FileDbCache.csproj", "{EF44F661-B98A-4676-927F-85D138F82300}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleApplication", "SampleApps\SampleApplication\SampleApplication.csproj", "{CCBCDAE5-E68F-43A8-930A-0749E476D29D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SurfaceApplication", "SampleApps\SurfaceApplication\SurfaceApplication.csproj", "{6285FB9D-B7EA-469A-B464-224077967167}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -27,16 +29,6 @@ Global
{06481252-2310-414A-B9FC-D5739FDF6BD3}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{06481252-2310-414A-B9FC-D5739FDF6BD3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{06481252-2310-414A-B9FC-D5739FDF6BD3}.Release|x86.ActiveCfg = Release|Any CPU
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|Any CPU.ActiveCfg = Debug|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|Mixed Platforms.Build.0 = Debug|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|x86.ActiveCfg = Debug|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|x86.Build.0 = Debug|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|Any CPU.ActiveCfg = Release|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|Mixed Platforms.ActiveCfg = Release|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|Mixed Platforms.Build.0 = Release|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|x86.ActiveCfg = Release|x86
- {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|x86.Build.0 = Release|x86
{EF44F661-B98A-4676-927F-85D138F82300}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EF44F661-B98A-4676-927F-85D138F82300}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EF44F661-B98A-4676-927F-85D138F82300}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -47,6 +39,26 @@ Global
{EF44F661-B98A-4676-927F-85D138F82300}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{EF44F661-B98A-4676-927F-85D138F82300}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EF44F661-B98A-4676-927F-85D138F82300}.Release|x86.ActiveCfg = Release|Any CPU
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|Mixed Platforms.Build.0 = Debug|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|x86.ActiveCfg = Debug|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Debug|x86.Build.0 = Debug|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|Any CPU.ActiveCfg = Release|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|Mixed Platforms.ActiveCfg = Release|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|Mixed Platforms.Build.0 = Release|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|x86.ActiveCfg = Release|x86
+ {CCBCDAE5-E68F-43A8-930A-0749E476D29D}.Release|x86.Build.0 = Release|x86
+ {6285FB9D-B7EA-469A-B464-224077967167}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+ {6285FB9D-B7EA-469A-B464-224077967167}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/MapControl/Map.cs b/MapControl/Map.cs
index 528632bd..c7df4c83 100644
--- a/MapControl/Map.cs
+++ b/MapControl/Map.cs
@@ -3,7 +3,6 @@
// Licensed under the Microsoft Public License (Ms-PL)
using System;
-using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
@@ -395,7 +394,7 @@ namespace MapControl
{
SetTransformOrigin(origin);
updateTransform = false;
- Heading += rotation;
+ Heading = (((Heading + rotation) % 360d) + 360d) % 360d;
ZoomLevel += Math.Log(scale, 2d);
updateTransform = true;
UpdateViewTransform();
diff --git a/MapControl/MapGraticule.cs b/MapControl/MapGraticule.cs
index 8ed45fe4..981df69d 100644
--- a/MapControl/MapGraticule.cs
+++ b/MapControl/MapGraticule.cs
@@ -12,8 +12,8 @@ using System.Windows.Shapes;
namespace MapControl
{
///
- /// Draws a graticule overlay. The minimum spacing in pixels between adjacent graticule lines
- /// is specified by the MinSpacingPixels property.
+ /// Draws a graticule overlay. The minimum spacing in pixels between adjacent
+ /// graticule lines is specified by the MinLineSpacing property.
///
public class MapGraticule : MapElement
{
@@ -41,8 +41,8 @@ namespace MapControl
public static readonly DependencyProperty StrokeThicknessProperty = Shape.StrokeThicknessProperty.AddOwner(
typeof(MapGraticule), new FrameworkPropertyMetadata(0.5, (o, e) => ((MapGraticule)o).pen.Thickness = (double)e.NewValue));
- public static readonly DependencyProperty MinSpacingPixelsProperty = DependencyProperty.Register(
- "MinSpacingPixels", typeof(double), typeof(MapGraticule), new FrameworkPropertyMetadata(100d));
+ public static readonly DependencyProperty MinLineSpacingProperty = DependencyProperty.Register(
+ "MinLineSpacing", typeof(double), typeof(MapGraticule), new FrameworkPropertyMetadata(100d));
public static double[] Spacings =
new double[] { 1d / 60d, 1d / 30d, 1d / 12d, 1d / 6d, 1d / 4d, 1d / 3d, 1d / 2d, 1d, 2d, 5d, 10d, 15d, 20d, 30d, 45d };
@@ -106,10 +106,13 @@ namespace MapControl
set { SetValue(StrokeThicknessProperty, value); }
}
- public double MinSpacingPixels
+ ///
+ /// Minimum spacing in pixels between adjacent graticule lines.
+ ///
+ public double MinLineSpacing
{
- get { return (double)GetValue(MinSpacingPixelsProperty); }
- set { SetValue(MinSpacingPixelsProperty, value); }
+ get { return (double)GetValue(MinLineSpacingProperty); }
+ set { SetValue(MinLineSpacingProperty, value); }
}
protected override int VisualChildrenCount
@@ -127,7 +130,7 @@ namespace MapControl
Rect bounds = parentMap.ViewportTransform.Inverse.TransformBounds(new Rect(parentMap.RenderSize));
Location loc1 = parentMap.MapTransform.TransformBack(bounds.TopLeft);
Location loc2 = parentMap.MapTransform.TransformBack(bounds.BottomRight);
- double minSpacing = MinSpacingPixels * 360d / (Math.Pow(2d, parentMap.ZoomLevel) * 256d);
+ double minSpacing = MinLineSpacing * 360d / (Math.Pow(2d, parentMap.ZoomLevel) * 256d);
double spacing = Spacings[Spacings.Length - 1];
if (spacing >= minSpacing)
diff --git a/MapControl/TileImageLoader.cs b/MapControl/TileImageLoader.cs
index dae97125..577e0927 100644
--- a/MapControl/TileImageLoader.cs
+++ b/MapControl/TileImageLoader.cs
@@ -82,12 +82,12 @@ namespace MapControl
this.tileLayer = tileLayer;
}
- internal void StartDownloadTiles(ICollection tiles)
+ internal void BeginDownloadTiles(ICollection tiles)
{
- ThreadPool.QueueUserWorkItem(StartDownloadTilesAsync, new List(tiles.Where(t => t.Image == null && t.Uri == null)));
+ ThreadPool.QueueUserWorkItem(BeginDownloadTilesAsync, new List(tiles.Where(t => t.Image == null && t.Uri == null)));
}
- internal void StopDownloadTiles()
+ internal void CancelDownloadTiles()
{
lock (pendingTiles)
{
@@ -103,7 +103,7 @@ namespace MapControl
}
}
- private void StartDownloadTilesAsync(object newTilesList)
+ private void BeginDownloadTilesAsync(object newTilesList)
{
List newTiles = (List)newTilesList;
@@ -223,7 +223,7 @@ namespace MapControl
{
TraceInformation("{0} - {1}", tile.Uri, ((HttpWebResponse)exc.Response).StatusCode);
}
- else if (exc.Status == WebExceptionStatus.RequestCanceled)
+ else if (exc.Status == WebExceptionStatus.RequestCanceled) // by HttpWebRequest.Abort in CancelDownloadTiles
{
TraceInformation("{0} - {1}", tile.Uri, exc.Status);
}
@@ -283,7 +283,7 @@ namespace MapControl
private static void TraceInformation(string format, params object[] args)
{
- Trace.TraceInformation("[{0:00}] {1}", Thread.CurrentThread.ManagedThreadId, string.Format(format, args));
+ //Trace.TraceInformation("[{0:00}] {1}", Thread.CurrentThread.ManagedThreadId, string.Format(format, args));
}
}
}
diff --git a/MapControl/TileLayer.cs b/MapControl/TileLayer.cs
index a0735a5e..dac36127 100644
--- a/MapControl/TileLayer.cs
+++ b/MapControl/TileLayer.cs
@@ -58,21 +58,21 @@ namespace MapControl
this.grid = grid;
this.zoomLevel = zoomLevel;
- tileImageLoader.StopDownloadTiles();
+ tileImageLoader.CancelDownloadTiles();
if (VisualParent != null && TileSource != null)
{
SelectTiles();
RenderTiles();
- tileImageLoader.StartDownloadTiles(tiles);
+ tileImageLoader.BeginDownloadTiles(tiles);
}
}
public void ClearTiles()
{
tiles.Clear();
- tileImageLoader.StopDownloadTiles();
+ tileImageLoader.CancelDownloadTiles();
}
private void SelectTiles()
diff --git a/TestApplication/App.xaml b/SampleApps/SampleApplication/App.xaml
similarity index 84%
rename from TestApplication/App.xaml
rename to SampleApps/SampleApplication/App.xaml
index be2ad0e5..c04ecdda 100644
--- a/TestApplication/App.xaml
+++ b/SampleApps/SampleApplication/App.xaml
@@ -1,4 +1,4 @@
-
diff --git a/TestApplication/App.xaml.cs b/SampleApps/SampleApplication/App.xaml.cs
similarity index 75%
rename from TestApplication/App.xaml.cs
rename to SampleApps/SampleApplication/App.xaml.cs
index 8da9a87e..ea742788 100644
--- a/TestApplication/App.xaml.cs
+++ b/SampleApps/SampleApplication/App.xaml.cs
@@ -1,6 +1,6 @@
using System.Windows;
-namespace MapControlTestApp
+namespace SampleApplication
{
public partial class App : Application
{
diff --git a/TestApplication/MainWindow.xaml b/SampleApps/SampleApplication/MainWindow.xaml
similarity index 98%
rename from TestApplication/MainWindow.xaml
rename to SampleApps/SampleApplication/MainWindow.xaml
index 5499baa8..49113660 100644
--- a/TestApplication/MainWindow.xaml
+++ b/SampleApps/SampleApplication/MainWindow.xaml
@@ -1,8 +1,8 @@
-
{CCBCDAE5-E68F-43A8-930A-0749E476D29D}
WinExe
Properties
- MapControlTestApp
- MapControlTestApp
+ SampleApplication
+ SampleApplication
v4.0
@@ -75,11 +75,11 @@
-
+
{EF44F661-B98A-4676-927F-85D138F82300}
FileDbCache
-
+
{06481252-2310-414A-B9FC-D5739FDF6BD3}
MapControl
diff --git a/TestApplication/SampleItems.cs b/SampleApps/SampleApplication/SampleItems.cs
similarity index 92%
rename from TestApplication/SampleItems.cs
rename to SampleApps/SampleApplication/SampleItems.cs
index 3193109d..2f91a734 100644
--- a/TestApplication/SampleItems.cs
+++ b/SampleApps/SampleApplication/SampleItems.cs
@@ -1,7 +1,7 @@
using System.Collections.ObjectModel;
using MapControl;
-namespace MapControlTestApp
+namespace SampleApplication
{
class SamplePoint
{
diff --git a/SampleApps/SurfaceApplication/App.config b/SampleApps/SurfaceApplication/App.config
new file mode 100644
index 00000000..e3656033
--- /dev/null
+++ b/SampleApps/SurfaceApplication/App.config
@@ -0,0 +1,3 @@
+
+
+
diff --git a/SampleApps/SurfaceApplication/App.xaml b/SampleApps/SurfaceApplication/App.xaml
new file mode 100644
index 00000000..486a4398
--- /dev/null
+++ b/SampleApps/SurfaceApplication/App.xaml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
diff --git a/SampleApps/SurfaceApplication/App.xaml.cs b/SampleApps/SurfaceApplication/App.xaml.cs
new file mode 100644
index 00000000..35b64ad0
--- /dev/null
+++ b/SampleApps/SurfaceApplication/App.xaml.cs
@@ -0,0 +1,8 @@
+using System.Windows;
+
+namespace SurfaceApplication
+{
+ public partial class App : Application
+ {
+ }
+}
\ No newline at end of file
diff --git a/SampleApps/SurfaceApplication/MainWindow.xaml b/SampleApps/SurfaceApplication/MainWindow.xaml
new file mode 100644
index 00000000..ae1e01fe
--- /dev/null
+++ b/SampleApps/SurfaceApplication/MainWindow.xaml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/SampleApps/SurfaceApplication/MainWindow.xaml.cs b/SampleApps/SurfaceApplication/MainWindow.xaml.cs
new file mode 100644
index 00000000..14401b3c
--- /dev/null
+++ b/SampleApps/SurfaceApplication/MainWindow.xaml.cs
@@ -0,0 +1,28 @@
+using System.Windows.Input;
+using Microsoft.Surface;
+using Microsoft.Surface.Presentation.Controls;
+using Microsoft.Surface.Presentation.Input;
+
+namespace SurfaceApplication
+{
+ public partial class MainWindow : SurfaceWindow
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+
+ private void MapTouchDown(object sender, TouchEventArgs e)
+ {
+ if (SurfaceEnvironment.IsSurfaceEnvironmentAvailable &&
+ !e.Device.GetIsFingerRecognized())
+ {
+ // If touch event is from a blob or tag, prevent touch capture by setting
+ // TouchEventArgs.Handled = true. Hence no manipulation will be started.
+ // See http://msdn.microsoft.com/en-us/library/ms754010#touch_and_manipulation
+
+ e.Handled = true;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs b/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..d39e6ca2
--- /dev/null
+++ b/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs
@@ -0,0 +1,64 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Resources;
+using System.Globalization;
+using System.Windows;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("SurfaceApplication")]
+[assembly: AssemblyDescription("WPF Map Control Sample SurfaceApplication")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Clemens Fischer")]
+[assembly: AssemblyProduct("WPF Map Control")]
+[assembly: AssemblyCopyright("Copyright © 2012 Clemens Fischer")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+//In order to begin building localizable applications, set
+//CultureYouAreCodingWith in your .csproj file
+//inside a . For example, if you are using US english
+//in your source files, set the to en-US. Then uncomment
+//the NeutralResourceLanguage attribute below. Update the "en-US" in
+//the line below to match the UICulture setting in the project file.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+// Specifies the location in which theme dictionaries are stored for types in an assembly.
+[assembly: ThemeInfo(
+ // Specifies the location of system theme-specific resource dictionaries for this project.
+ // The default setting in this project is "None" since this default project does not
+ // include these user-defined theme files:
+ // Themes\Aero.NormalColor.xaml
+ // Themes\Classic.xaml
+ // Themes\Luna.Homestead.xaml
+ // Themes\Luna.Metallic.xaml
+ // Themes\Luna.NormalColor.xaml
+ // Themes\Royale.NormalColor.xaml
+ ResourceDictionaryLocation.None,
+
+ // Specifies the location of the system non-theme specific resource dictionary:
+ // Themes\generic.xaml
+ ResourceDictionaryLocation.SourceAssembly)]
+
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
\ No newline at end of file
diff --git a/SampleApps/SurfaceApplication/Properties/Resources.Designer.cs b/SampleApps/SurfaceApplication/Properties/Resources.Designer.cs
new file mode 100644
index 00000000..df792a36
--- /dev/null
+++ b/SampleApps/SurfaceApplication/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.225
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace SurfaceApplication.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.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() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [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("SurfaceApplication.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [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/SampleApps/SurfaceApplication/Properties/Resources.resx b/SampleApps/SurfaceApplication/Properties/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/SampleApps/SurfaceApplication/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/SampleApps/SurfaceApplication/Properties/Settings.Designer.cs b/SampleApps/SurfaceApplication/Properties/Settings.Designer.cs
new file mode 100644
index 00000000..3bdb505e
--- /dev/null
+++ b/SampleApps/SurfaceApplication/Properties/Settings.Designer.cs
@@ -0,0 +1,26 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.225
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace SurfaceApplication.Properties {
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.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/SampleApps/SurfaceApplication/Properties/Settings.settings b/SampleApps/SurfaceApplication/Properties/Settings.settings
new file mode 100644
index 00000000..9010101f
--- /dev/null
+++ b/SampleApps/SurfaceApplication/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SampleApps/SurfaceApplication/SurfaceApplication.csproj b/SampleApps/SurfaceApplication/SurfaceApplication.csproj
new file mode 100644
index 00000000..9d66a08f
--- /dev/null
+++ b/SampleApps/SurfaceApplication/SurfaceApplication.csproj
@@ -0,0 +1,115 @@
+
+
+
+ Debug
+ AnyCPU
+ 8.0.30703
+ 2.0
+ {6285FB9D-B7EA-469A-B464-224077967167}
+ WinExe
+ Properties
+ SurfaceApplication
+ SurfaceApplication
+ v4.0
+
+
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ none
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+ MainWindow.xaml
+ Code
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+ PreserveNewest
+
+
+
+
+ {06481252-2310-414A-B9FC-D5739FDF6BD3}
+ MapControl
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SampleApps/SurfaceApplication/SurfaceApplication.xml b/SampleApps/SurfaceApplication/SurfaceApplication.xml
new file mode 100644
index 00000000..d1870585
--- /dev/null
+++ b/SampleApps/SurfaceApplication/SurfaceApplication.xml
@@ -0,0 +1,48 @@
+
+
+
+
+ SurfaceApplication
+ SurfaceApplication
+ SurfaceApplication.exe
+
+
+ Resources\icon.png
+
+
+
+
+
+
+
+
+
\ No newline at end of file