-1

我使用这些说明在我的 WPF Core 应用程序中包含了一个 MapControl 。我可以正确显示地图,但问题是当我尝试在地图顶部放置任何其他界面元素时。我尝试了很多方法,但地图总是覆盖我放在它上面的任何其他元素,因此不会显示。例如:

<Window x:Class="WpfMapControl.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfMapControl"
    xmlns:controls="clr-namespace:Microsoft.Toolkit.Wpf.UI.Controls;assembly=Microsoft.Toolkit.Wpf.UI.Controls"
    mc:Ignorable="d"
    Title="MainWindow" Height="400" Width="400">
<Grid>
    <controls:MapControl Grid.Column="1"
                x:Name="mapControl"/>
    <Rectangle Width="100" Height="100" Fill="Red"></Rectangle>
</Grid>

这应该是这样的:

在此处输入图像描述

但结果是这样的:

在此处输入图像描述

如何在 MapControl 上放置任何其他元素?

4

1 回答 1

0

如何在 MapControl 上放置任何其他元素?

简短的回答:你不能。

就像 a 中的 Windows 窗体控件一样WindowsFormsHost,aWindowsXamlHost托管在一个单独的 HWND 中,该 HWND始终绘制在 WPF 元素的顶部。

文档

托管的 Windows 窗体控件在单独的 HWND 中绘制,因此它始终绘制在 WPF 元素之上。

在此处输入图像描述

于 2021-02-24T19:13:00.963 回答