Version 4.9.0: Reworked MapPanel child arrangement.

This commit is contained in:
ClemensF 2018-05-01 02:06:22 +02:00
parent 56d376c4d0
commit 5a05e9284a
5 changed files with 102 additions and 141 deletions

View file

@ -30,12 +30,12 @@ namespace MapControl
{
if (path == null)
{
path = new Path
{
Data = new PathGeometry()
};
SetStrokeBindings(path);
path = new Path { Data = new PathGeometry() };
path.SetBinding(Shape.StrokeProperty, StrokeBinding);
path.SetBinding(Shape.StrokeThicknessProperty, StrokeThicknessBinding);
path.SetBinding(Shape.StrokeDashArrayProperty, StrokeDashArrayBinding);
path.SetBinding(Shape.StrokeDashOffsetProperty, StrokeDashOffsetBinding);
path.SetBinding(Shape.StrokeDashCapProperty, StrokeDashCapBinding);
Children.Add(path);
}
@ -115,31 +115,14 @@ namespace MapControl
renderTransform.Children.Add(ParentMap.RotateTransform);
renderTransform.Children.Add(new TranslateTransform());
label = new TextBlock
{
RenderTransform = renderTransform
};
label.SetBinding(TextBlock.ForegroundProperty, new Binding
{
Source = this,
Path = new PropertyPath("Foreground")
});
label = new TextBlock { RenderTransform = renderTransform };
label.SetBinding(TextBlock.ForegroundProperty, ForegroundBinding);
Children.Add(label);
}
childIndex++;
if (FontFamily != null)
{
label.FontFamily = FontFamily;
}
label.FontSize = FontSize;
label.FontStyle = FontStyle;
label.FontStretch = FontStretch;
label.FontWeight = FontWeight;
label.Text = GetLabelText(lat, labelFormat, "NS") + "\n" + GetLabelText(Location.NormalizeLongitude(lon), labelFormat, "EW");
label.Tag = new Location(lat, lon);
label.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));

View file

@ -4,9 +4,7 @@
using Windows.UI.Text;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Shapes;
namespace MapControl
{
@ -56,62 +54,5 @@ namespace MapControl
public static readonly DependencyProperty StrokeMiterLimitProperty = DependencyProperty.Register(
nameof(StrokeMiterLimit), typeof(double), typeof(MapOverlay), new PropertyMetadata(1d));
public void SetStrokeBindings(Shape shape)
{
shape.SetBinding(Shape.StrokeProperty, new Binding
{
Source = this,
Path = new PropertyPath("Stroke")
});
shape.SetBinding(Shape.StrokeThicknessProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeThickness")
});
shape.SetBinding(Shape.StrokeDashArrayProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeDashArray")
});
shape.SetBinding(Shape.StrokeDashOffsetProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeDashOffset")
});
shape.SetBinding(Shape.StrokeDashCapProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeDashCap")
});
shape.SetBinding(Shape.StrokeStartLineCapProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeStartLineCap")
});
shape.SetBinding(Shape.StrokeEndLineCapProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeEndLineCap")
});
shape.SetBinding(Shape.StrokeLineJoinProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeLineJoin")
});
shape.SetBinding(Shape.StrokeMiterLimitProperty, new Binding
{
Source = this,
Path = new PropertyPath("StrokeMiterLimit")
});
}
}
}