WinUI animated Center

This commit is contained in:
ClemensFischer 2024-05-21 14:06:36 +02:00
parent 74f4e0176b
commit 5bc9c73fad
2 changed files with 12 additions and 9 deletions

View file

@ -8,6 +8,7 @@ using Microsoft.UI.Xaml;
#else
using Windows.UI.Xaml;
#endif
#pragma warning disable IDE0060 // Remove unused parameter
namespace MapControl
{
@ -16,7 +17,7 @@ namespace MapControl
public static DependencyProperty Register<TOwner, TValue>(
string name,
TValue defaultValue = default,
bool bindTwoWayByDefault = false,
bool bindTwoWayByDefault = false, // unused in WinUI/UWP
Action<TOwner, TValue, TValue> changed = null)
where TOwner : DependencyObject
{
@ -30,7 +31,7 @@ namespace MapControl
public static DependencyProperty RegisterAttached<TOwner, TValue>(
string name,
TValue defaultValue = default,
bool inherits = false,
bool inherits = false, // unused in WinUI/UWP
Action<FrameworkElement, TValue, TValue> changed = null)
where TOwner : DependencyObject
{
@ -42,3 +43,5 @@ namespace MapControl
}
}
}
#pragma warning restore IDE0060

View file

@ -57,6 +57,12 @@ namespace MapControl
public static readonly DependencyProperty ViewScaleProperty =
DependencyPropertyHelper.Register<MapBase, double>(nameof(ViewScale), 0d);
private static readonly DependencyProperty AnimatedCenterProperty =
DependencyPropertyHelper.Register<MapBase, Windows.Foundation.Point>(nameof(AnimatedCenter),
new Windows.Foundation.Point(), false, (map, oldValue, newValue) => map.Center = new Location(newValue.Y, newValue.X));
private Windows.Foundation.Point AnimatedCenter => (Windows.Foundation.Point)GetValue(AnimatedCenterProperty);
private PointAnimation centerAnimation;
private DoubleAnimation zoomLevelAnimation;
private DoubleAnimation headingAnimation;
@ -138,12 +144,6 @@ namespace MapControl
}
}
#pragma warning disable IDE0052 // Remove unread private members
private static readonly DependencyProperty CenterPointProperty =
DependencyPropertyHelper.Register<MapBase, Windows.Foundation.Point>("CenterPoint",
new Windows.Foundation.Point(), false, (map, oldValue, newValue) => map.Center = new Location(newValue.Y, newValue.X));
#pragma warning restore IDE0052
private void TargetCenterPropertyChanged(Location value)
{
if (!internalPropertyChange)
@ -173,7 +173,7 @@ namespace MapControl
centerAnimation.Completed += CenterAnimationCompleted;
this.BeginAnimation("CenterPoint", centerAnimation);
this.BeginAnimation(nameof(AnimatedCenter), centerAnimation);
}
}
}