Use DispatcherTimer alias

This commit is contained in:
Clemens 2022-08-02 19:50:11 +02:00
parent 267f45ae29
commit 57b7f718ee
5 changed files with 24 additions and 21 deletions

12
.gitignore vendored
View file

@ -1,3 +1,15 @@
.vs/ .vs/
bin/ bin/
obj/ obj/
packages/
Maps.*
TestApps/
Win2D/
ChartServerLayer.cs
TileLoader.cs
MapControl_TestApps.sln
*.user
*.cache
*.cmd
*.nupkg
*.txt

View file

@ -8,11 +8,11 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
#if WINUI #if WINUI
using Windows.Foundation; using Windows.Foundation;
using Microsoft.UI.Dispatching;
using Microsoft.UI.Xaml; using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Animation; using Microsoft.UI.Xaml.Media.Animation;
using DispatcherTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
#elif UWP #elif UWP
using Windows.Foundation; using Windows.Foundation;
using Windows.UI.Xaml; using Windows.UI.Xaml;
@ -54,11 +54,7 @@ namespace MapControl
public static readonly DependencyProperty MapForegroundProperty = DependencyProperty.Register( public static readonly DependencyProperty MapForegroundProperty = DependencyProperty.Register(
nameof(MapForeground), typeof(Brush), typeof(MapImageLayer), new PropertyMetadata(null)); nameof(MapForeground), typeof(Brush), typeof(MapImageLayer), new PropertyMetadata(null));
#if WINUI
private readonly DispatcherQueueTimer updateTimer;
#else
private readonly DispatcherTimer updateTimer; private readonly DispatcherTimer updateTimer;
#endif
private bool updateInProgress; private bool updateInProgress;
public MapImageLayer() public MapImageLayer()

View file

@ -55,6 +55,7 @@ namespace MapControl
line.SetBinding(Shape.StrokeProperty, this.GetOrCreateBinding(StrokeProperty, nameof(Stroke))); line.SetBinding(Shape.StrokeProperty, this.GetOrCreateBinding(StrokeProperty, nameof(Stroke)));
line.SetBinding(Shape.StrokeThicknessProperty, this.GetOrCreateBinding(StrokeThicknessProperty, nameof(StrokeThickness))); line.SetBinding(Shape.StrokeThicknessProperty, this.GetOrCreateBinding(StrokeThicknessProperty, nameof(StrokeThickness)));
#if WINUI || UWP #if WINUI || UWP
label.SetBinding(TextBlock.ForegroundProperty, this.GetOrCreateBinding(ForegroundProperty, nameof(Foreground))); label.SetBinding(TextBlock.ForegroundProperty, this.GetOrCreateBinding(ForegroundProperty, nameof(Foreground)));
#endif #endif

View file

@ -6,10 +6,10 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
#if WINUI #if WINUI
using Microsoft.UI.Dispatching;
using Microsoft.UI.Xaml; using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Media;
using DispatcherTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
#elif UWP #elif UWP
using Windows.UI.Xaml; using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls;
@ -58,11 +58,7 @@ namespace MapControl
public static readonly DependencyProperty MapForegroundProperty = DependencyProperty.Register( public static readonly DependencyProperty MapForegroundProperty = DependencyProperty.Register(
nameof(MapForeground), typeof(Brush), typeof(MapTileLayerBase), new PropertyMetadata(null)); nameof(MapForeground), typeof(Brush), typeof(MapTileLayerBase), new PropertyMetadata(null));
#if WINUI
private readonly DispatcherQueueTimer updateTimer;
#else
private readonly DispatcherTimer updateTimer; private readonly DispatcherTimer updateTimer;
#endif
private MapBase parentMap; private MapBase parentMap;
protected MapTileLayerBase(ITileImageLoader tileImageLoader) protected MapTileLayerBase(ITileImageLoader tileImageLoader)

View file

@ -44,8 +44,8 @@ namespace MapControl
// Workaround for missing property value inheritance. // Workaround for missing property value inheritance.
// Loaded and Unloaded handlers set and clear the ParentMap property value. // Loaded and Unloaded handlers set and clear the ParentMap property value.
element.Loaded += (s, e) => GetParentMap(element); element.Loaded += (s, e) => GetParentMap((FrameworkElement)s);
element.Unloaded += (s, e) => element.ClearValue(ParentMapProperty); element.Unloaded += (s, e) => ((FrameworkElement)s).ClearValue(ParentMapProperty);
} }
} }
@ -53,21 +53,19 @@ namespace MapControl
{ {
var parentMap = (MapBase)element.GetValue(ParentMapProperty); var parentMap = (MapBase)element.GetValue(ParentMapProperty);
if (parentMap == null && (parentMap = FindParentMap(element)) != null) if (parentMap == null && VisualTreeHelper.GetParent(element) is FrameworkElement parentElement)
{ {
element.SetValue(ParentMapProperty, parentMap); parentMap = (parentElement as MapBase) ?? GetParentMap(parentElement);
if (parentMap != null)
{
element.SetValue(ParentMapProperty, parentMap);
}
} }
return parentMap; return parentMap;
} }
private static MapBase FindParentMap(FrameworkElement element)
{
return VisualTreeHelper.GetParent(element) is FrameworkElement parent
? ((parent as MapBase) ?? (MapBase)element.GetValue(ParentMapProperty) ?? FindParentMap(parent))
: null;
}
private static void SetViewPosition(FrameworkElement element, Point? viewPosition) private static void SetViewPosition(FrameworkElement element, Point? viewPosition)
{ {
element.SetValue(ViewPositionProperty, viewPosition); element.SetValue(ViewPositionProperty, viewPosition);