From 0f4e7d643ed07986f000f535f8d5f6148861a2d3 Mon Sep 17 00:00:00 2001 From: ClemensF Date: Wed, 8 May 2013 17:05:17 +0200 Subject: [PATCH] Version 1.3.1: Added Map.ManipulationMode property. --- .../FileDbCache/Properties/AssemblyInfo.cs | 4 +-- .../ImageFileCache/Properties/AssemblyInfo.cs | 4 +-- MapControl/Map.Silverlight.cs | 10 ++++-- MapControl/Map.WPF.cs | 32 +++++++++++++++++-- MapControl/Map.WinRT.cs | 11 +++++-- MapControl/MapBase.cs | 4 +-- MapControl/MapOverlay.cs | 2 +- MapControl/Properties/AssemblyInfo.cs | 4 +-- MapControl/TileLayer.WPF.cs | 2 ++ MapControl/TileLayer.cs | 1 - MapControl/WinRT/Properties/AssemblyInfo.cs | 4 +-- .../Properties/AssemblyInfo.cs | 4 +-- .../SilverlightApplication/MainPage.xaml | 3 +- .../Properties/AssemblyInfo.cs | 4 +-- SampleApps/StoreApplication/MainPage.xaml | 2 +- .../Properties/AssemblyInfo.cs | 4 +-- SampleApps/SurfaceApplication/MainWindow.xaml | 3 +- .../Properties/AssemblyInfo.cs | 4 +-- SampleApps/WpfApplication/MainWindow.xaml | 3 +- .../WpfApplication/Properties/AssemblyInfo.cs | 4 +-- 20 files changed, 73 insertions(+), 36 deletions(-) diff --git a/Caching/FileDbCache/Properties/AssemblyInfo.cs b/Caching/FileDbCache/Properties/AssemblyInfo.cs index 5433b719..be8c9071 100644 --- a/Caching/FileDbCache/Properties/AssemblyInfo.cs +++ b/Caching/FileDbCache/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/Caching/ImageFileCache/Properties/AssemblyInfo.cs b/Caching/ImageFileCache/Properties/AssemblyInfo.cs index 9503e6af..18c1c75e 100644 --- a/Caching/ImageFileCache/Properties/AssemblyInfo.cs +++ b/Caching/ImageFileCache/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/MapControl/Map.Silverlight.cs b/MapControl/Map.Silverlight.cs index c0be4951..ffc05cd4 100644 --- a/MapControl/Map.Silverlight.cs +++ b/MapControl/Map.Silverlight.cs @@ -12,11 +12,13 @@ namespace MapControl /// public class Map : MapBase { + public static readonly DependencyProperty MouseWheelZoomChangeProperty = DependencyProperty.Register( + "MouseWheelZoomChange", typeof(double), typeof(Map), new PropertyMetadata(1d)); + private Point? mousePosition; public Map() { - MouseWheelZoomChange = 1d; MouseWheel += OnMouseWheel; MouseLeftButtonDown += OnMouseLeftButtonDown; MouseLeftButtonUp += OnMouseLeftButtonUp; @@ -26,7 +28,11 @@ namespace MapControl /// /// Gets or sets the amount by which the ZoomLevel property changes during a MouseWheel event. /// - public double MouseWheelZoomChange { get; set; } + public double MouseWheelZoomChange + { + get { return (double)GetValue(MouseWheelZoomChangeProperty); } + set { SetValue(MouseWheelZoomChangeProperty, value); } + } private void OnMouseWheel(object sender, MouseWheelEventArgs e) { diff --git a/MapControl/Map.WPF.cs b/MapControl/Map.WPF.cs index ae2ce278..63843104 100644 --- a/MapControl/Map.WPF.cs +++ b/MapControl/Map.WPF.cs @@ -12,17 +12,36 @@ namespace MapControl /// public class Map : MapBase { + public static readonly DependencyProperty ManipulationModeProperty = DependencyProperty.Register( + "ManipulationMode", typeof(ManipulationModes), typeof(Map), new PropertyMetadata(ManipulationModes.All)); + + public static readonly DependencyProperty MouseWheelZoomChangeProperty = DependencyProperty.Register( + "MouseWheelZoomChange", typeof(double), typeof(Map), new PropertyMetadata(1d)); + private Point? mousePosition; - public Map() + static Map() { - MouseWheelZoomChange = 1d; + IsManipulationEnabledProperty.OverrideMetadata(typeof(Map), new FrameworkPropertyMetadata(true)); + } + + /// + /// Gets or sets a value that specifies how the map control handles manipulations. + /// + public ManipulationModes ManipulationMode + { + get { return (ManipulationModes)GetValue(ManipulationModeProperty); } + set { SetValue(ManipulationModeProperty, value); } } /// /// Gets or sets the amount by which the ZoomLevel property changes during a MouseWheel event. /// - public double MouseWheelZoomChange { get; set; } + public double MouseWheelZoomChange + { + get { return (double)GetValue(MouseWheelZoomChangeProperty); } + set { SetValue(MouseWheelZoomChangeProperty, value); } + } protected override void OnMouseWheel(MouseWheelEventArgs e) { @@ -65,6 +84,13 @@ namespace MapControl } } + protected override void OnManipulationStarted(ManipulationStartedEventArgs e) + { + base.OnManipulationStarted(e); + + Manipulation.SetManipulationMode(this, ManipulationMode); + } + protected override void OnManipulationDelta(ManipulationDeltaEventArgs e) { base.OnManipulationDelta(e); diff --git a/MapControl/Map.WinRT.cs b/MapControl/Map.WinRT.cs index 54324c23..16ca3627 100644 --- a/MapControl/Map.WinRT.cs +++ b/MapControl/Map.WinRT.cs @@ -4,6 +4,7 @@ using Windows.Devices.Input; using Windows.Foundation; +using Windows.UI.Xaml; using Windows.UI.Xaml.Input; namespace MapControl @@ -13,11 +14,13 @@ namespace MapControl /// public class Map : MapBase { + public static readonly DependencyProperty MouseWheelZoomChangeProperty = DependencyProperty.Register( + "MouseWheelZoomChange", typeof(double), typeof(Map), new PropertyMetadata(1d)); + private Point? mousePosition; public Map() { - MouseWheelZoomChange = 1d; ManipulationMode = ManipulationModes.All; ManipulationDelta += OnManipulationDelta; PointerWheelChanged += OnPointerWheelChanged; @@ -31,7 +34,11 @@ namespace MapControl /// /// Gets or sets the amount by which the ZoomLevel property changes during a MouseWheel event. /// - public double MouseWheelZoomChange { get; set; } + public double MouseWheelZoomChange + { + get { return (double)GetValue(MouseWheelZoomChangeProperty); } + set { SetValue(MouseWheelZoomChangeProperty, value); } + } private void OnPointerWheelChanged(object sender, PointerRoutedEventArgs e) { diff --git a/MapControl/MapBase.cs b/MapControl/MapBase.cs index d5369add..d42e72c1 100644 --- a/MapControl/MapBase.cs +++ b/MapControl/MapBase.cs @@ -806,8 +806,8 @@ namespace MapControl private void UpdateTransform() { var center = Center; - var origin = transformOrigin != null ? transformOrigin : center; - var scale = tileContainer.SetViewportTransform(ZoomLevel, Heading, mapTransform.Transform(origin), viewportOrigin, RenderSize); + var origin = mapTransform.Transform(transformOrigin ?? center); + var scale = tileContainer.SetViewportTransform(ZoomLevel, Heading, origin, viewportOrigin, RenderSize); if (transformOrigin != null) { diff --git a/MapControl/MapOverlay.cs b/MapControl/MapOverlay.cs index 600f3cd5..cffed6e2 100644 --- a/MapControl/MapOverlay.cs +++ b/MapControl/MapOverlay.cs @@ -204,7 +204,7 @@ namespace MapControl { pen = new Pen { - Brush = Stroke != null ? Stroke : Foreground, + Brush = Stroke ?? Foreground, Thickness = StrokeThickness, DashStyle = new DashStyle(StrokeDashArray, StrokeDashOffset), DashCap = StrokeDashCap, diff --git a/MapControl/Properties/AssemblyInfo.cs b/MapControl/Properties/AssemblyInfo.cs index 1c92f2d5..f276af65 100644 --- a/MapControl/Properties/AssemblyInfo.cs +++ b/MapControl/Properties/AssemblyInfo.cs @@ -15,8 +15,8 @@ using System.Windows; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/MapControl/TileLayer.WPF.cs b/MapControl/TileLayer.WPF.cs index 5c00cf4a..24fd85f0 100644 --- a/MapControl/TileLayer.WPF.cs +++ b/MapControl/TileLayer.WPF.cs @@ -15,6 +15,8 @@ namespace MapControl VisualEdgeMode = EdgeMode.Aliased; } + public Brush Background { get; set; } + protected ContainerVisual TileContainer { get { return Parent as ContainerVisual; } diff --git a/MapControl/TileLayer.cs b/MapControl/TileLayer.cs index 27d1bce0..a81bba14 100644 --- a/MapControl/TileLayer.cs +++ b/MapControl/TileLayer.cs @@ -64,7 +64,6 @@ namespace MapControl public int MaxZoomLevel { get; set; } public int MaxParallelDownloads { get; set; } public bool LoadLowerZoomLevels { get; set; } - public Brush Background { get; set; } public Brush Foreground { get; set; } public string Description diff --git a/MapControl/WinRT/Properties/AssemblyInfo.cs b/MapControl/WinRT/Properties/AssemblyInfo.cs index 1275606a..dd8d8c29 100644 --- a/MapControl/WinRT/Properties/AssemblyInfo.cs +++ b/MapControl/WinRT/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs b/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs index 4717c493..37d31a26 100644 --- a/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs +++ b/SampleApps/SilverlightApplication.Web/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/SilverlightApplication/MainPage.xaml b/SampleApps/SilverlightApplication/MainPage.xaml index d7db4acd..66b895dd 100644 --- a/SampleApps/SilverlightApplication/MainPage.xaml +++ b/SampleApps/SilverlightApplication/MainPage.xaml @@ -7,8 +7,7 @@ xmlns:map="clr-namespace:MapControl;assembly=MapControl.Silverlight" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:SilverlightApplication" - mc:Ignorable="d" - d:DesignHeight="300" d:DesignWidth="400"> + mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> - + - + diff --git a/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs b/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs index 397b7e02..f7478f6e 100644 --- a/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs +++ b/SampleApps/SurfaceApplication/Properties/AssemblyInfo.cs @@ -8,8 +8,8 @@ using System.Runtime.InteropServices; [assembly: AssemblyCompany("Clemens Fischer")] [assembly: AssemblyCopyright("Copyright © Clemens Fischer 2012-2013")] [assembly: AssemblyTrademark("")] -[assembly: AssemblyVersion("1.3.0")] -[assembly: AssemblyFileVersion("1.3.0")] +[assembly: AssemblyVersion("1.3.1")] +[assembly: AssemblyFileVersion("1.3.1")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] diff --git a/SampleApps/WpfApplication/MainWindow.xaml b/SampleApps/WpfApplication/MainWindow.xaml index c0c82dd6..100a2a3d 100644 --- a/SampleApps/WpfApplication/MainWindow.xaml +++ b/SampleApps/WpfApplication/MainWindow.xaml @@ -152,8 +152,7 @@ -