gpt4 book ai didi

c# - 如何在 Windows 10 MapControl 中将 Z-Index 添加到 XAML 控件

转载 作者:行者123 更新时间:2023-11-30 23:27:53 25 4
gpt4 key购买 nike

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

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

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

太好了,让我们在我的 UserControl 中实现它,这样 map 控件就知道如何绘制每个元素。惊喜!该界面是内部的,您只能盯着它看。

第二次尝试,也许他们使用 Canvas 来绘制元素,而 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>

关于c# - 如何在 Windows 10 MapControl 中将 Z-Index 添加到 XAML 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36293273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com