Removed UseLayoutRounding handling from MapPanel

This commit is contained in:
ClemensFischer 2024-05-22 10:16:22 +02:00
parent 9cb4a9be7e
commit 93b58fa01e
7 changed files with 11 additions and 31 deletions

View file

@ -58,7 +58,7 @@ namespace MapControl
(map, value) => map.CoerceHeadingProperty(value));
public static readonly DirectProperty<MapBase, double> ViewScaleProperty =
AvaloniaProperty.RegisterDirect<MapBase, double>(nameof(ViewScale), map => map.ViewScale);
AvaloniaProperty.RegisterDirect<MapBase, double>(nameof(ViewScale), map => map.ViewTransform.Scale);
private CancellationTokenSource centerCts;
private CancellationTokenSource zoomLevelCts;

View file

@ -28,7 +28,7 @@ namespace MapControl
element.RenderTransformOrigin = new RelativePoint(originX, originY, RelativeUnit.Relative);
}
private Controls ChildElements => Children;
protected Controls ChildElements => Children;
private static void SetVisible(Control element, bool visible)
{

View file

@ -106,8 +106,7 @@ namespace MapControl
FrameworkElement overlay = new Image
{
Source = imageOverlay.ImageSource,
Stretch = Stretch.Fill,
UseLayoutRounding = false
Stretch = Stretch.Fill
};
if (imageOverlay.LatLonBox.Rotation != 0d)
@ -115,9 +114,9 @@ namespace MapControl
overlay.RenderTransform = new RotateTransform { Angle = -imageOverlay.LatLonBox.Rotation };
overlay.RenderTransformOrigin = new Point(0.5, 0.5);
// Additional Panel for map rotation, see MapPanel.ArrangeElementWithBoundingBox.
// Additional Panel for map rotation, see MapPanel.ArrangeElement(FrameworkElement, ViewRect).
//
var panel = new Grid { UseLayoutRounding = false };
var panel = new Grid();
panel.Children.Add(overlay);
overlay = panel;
}

View file

@ -324,7 +324,7 @@ namespace MapControl
break;
}
ArrangeElement(element, new Rect(x, y, size.Width, size.Height));
element.Arrange(new Rect(x, y, size.Width, size.Height));
}
private static void ArrangeElement(FrameworkElement element, Size parentSize)
@ -371,7 +371,7 @@ namespace MapControl
break;
}
ArrangeElement(element, new Rect(x, y, width, height));
element.Arrange(new Rect(x, y, width, height));
}
private static void ArrangeElement(FrameworkElement element, ViewRect rect)
@ -379,7 +379,7 @@ namespace MapControl
element.Width = rect.Rect.Width;
element.Height = rect.Rect.Height;
ArrangeElement(element, rect.Rect);
element.Arrange(rect.Rect);
if (element.RenderTransform is RotateTransform rotateTransform)
{
@ -391,16 +391,6 @@ namespace MapControl
}
}
private static void ArrangeElement(FrameworkElement element, Rect rect)
{
if (element.UseLayoutRounding)
{
rect = new Rect(Math.Round(rect.X), Math.Round(rect.Y), Math.Round(rect.Width), Math.Round(rect.Height));
}
element.Arrange(rect);
}
internal static Size GetDesiredSize(FrameworkElement element)
{
var width = 0d;

View file

@ -10,7 +10,6 @@ using System.Threading.Tasks;
using System.Xml.Linq;
#if AVALONIA
using DependencyProperty = Avalonia.AvaloniaProperty;
using FrameworkElement = Avalonia.Controls.Control;
using ImageSource = Avalonia.Media.IImage;
#elif WINUI
using Microsoft.UI.Xaml;
@ -38,7 +37,7 @@ namespace MapControl
DependencyPropertyHelper.Register<WmsImageLayer, string>(nameof(WmsLayers), null, false,
async (layer, oldValue, newValue) =>
{
// Ignore property change from GetImageAsync, when Layers was null.
// Ignore property change from GetImageAsync when Layers was null.
//
if (oldValue != null)
{
@ -50,14 +49,6 @@ namespace MapControl
DependencyPropertyHelper.Register<WmsImageLayer, string>(nameof(WmsStyles), string.Empty, false,
async (layer, oldValue, newValue) => await layer.UpdateImageAsync());
public WmsImageLayer()
{
foreach (FrameworkElement child in Children)
{
child.UseLayoutRounding = true;
}
}
/// <summary>
/// The base request URL.
/// </summary>

View file

@ -30,7 +30,7 @@ namespace MapControl
element.RenderTransformOrigin = new Point(originX, originY);
}
private IEnumerable<FrameworkElement> ChildElements => Children.OfType<FrameworkElement>();
protected IEnumerable<FrameworkElement> ChildElements => Children.OfType<FrameworkElement>();
private static void SetVisible(FrameworkElement element, bool visible)
{

View file

@ -63,7 +63,7 @@ namespace MapControl
element.RenderTransformOrigin = new Point(originX, originY);
}
private IEnumerable<FrameworkElement> ChildElements => Children.OfType<FrameworkElement>();
protected IEnumerable<FrameworkElement> ChildElements => Children.OfType<FrameworkElement>();
private static void SetVisible(FrameworkElement element, bool visible)
{