1可以很容易地将图钉和任何您喜欢的东西添加到多个图层,清除这些图层,并可以确保某些项位于其他项之前。在Windows 10中,该控件消失了,取而代之的是我真正需要的东西的一半,但带有3D和场景(我不使用的东西)

我的第一次尝试是,好吧,MapPolygon具有ZIndex,因为它继承自MapElement并实现

internal interface IMapElement
{
    System.Boolean Visible { get; set; }
    System.Int32 ZIndex { get; set; }
}


太好了,让我们在UserControl中实现它,以便地图控件知道如何绘制每个元素。惊喜!该界面是内部的,您只能凝视它。

第二点,也许他们使用画布绘制元素,并且Canvas具有ZIndex,好吧,不用说它没有用

pin.SetValue(Canvas.ZIndexProperty);

有人可以告诉我UWP MapControl中是否有类似图层的内容,或者是否可以告诉MapControl在哪个索引中绘制项目?

问候。

最佳答案

我不确定它是否能解决您的问题,但绝对可以解决我的问题,这也可能对其他人有帮助。

public class MapControl : DependencyObject
{

    #region Dependency properties

    public static readonly DependencyProperty ZIndexProperty = DependencyProperty.RegisterAttached("ZIndex", typeof(int), typeof(MapControl), new PropertyMetadata(0, OnZIndexChanged));

    #endregion


    #region Methods

    public static int GetZIndex(DependencyObject obj)
    {
        return (int)obj.GetValue(ZIndexProperty);
    }

    private static void OnZIndexChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        ContentControl us = d as ContentControl;

        if (us != null)
        {
            // returns null if it is not loaded yet
            // returns 'DependencyObject' of type 'MapOverlayPresenter'
            var parent = VisualTreeHelper.GetParent(us);

            if (parent != null)
            {
                parent.SetValue(Canvas.ZIndexProperty, e.NewValue);
            }
        }
    }

    public static void SetZIndex(DependencyObject obj, int value)
    {
        obj.SetValue(ZIndexProperty, value);
    }

    #endregion

}


命名空间

xmlns:maps="using:Windows.UI.Xaml.Controls.Maps"
xmlns:mapHelper="using:yournamespace"


控制

<maps:MapControl>
    <maps:MapItemsControl ItemsSource="...">
        <maps:MapItemsControl.ItemTemplate>
            <DataTemplate x:DataType="...">
                <YourTemplate mapHelper:MapControl.ZIndex="{x:Bind ZIndex, Mode=OneWay}" />
            </DataTemplate>
        </maps:MapItemsControl.ItemTemplate>
    </maps:MapItemsControl>
</maps:MapControl>

08-25 23:36