1

我正在使用 UWP MapControl。

我使用此 XAML 遇到的问题是,当我右键单击地图时,没有出现弹出菜单。

<Maps:MapControl Name="MapaElementov" HorizontalAlignment="Left" Margin="10,47,0,0" VerticalAlignment="Top" Height="663" Width="1260" MapServiceToken="some-code"
                      ZoomLevel="9" RotateInteractionMode="Disabled" TiltInteractionMode="Disabled">
        <Maps:MapControl.ContextFlyout>
            <MenuFlyout>

            </MenuFlyout>
        </Maps:MapControl.ContextFlyout>
    </Maps:MapControl>

我在这里做错了什么?

4

1 回答 1

2

当我尝试运行您的示例时,它甚至无法编译。我收到此错误消息,指向 ContextFlyout:

The XAML Binary Format (XBF) generator reported syntax error '0x09c5'

也许 MapControl 不允许有 ContextFlyout?因此,或者,您可以使用以下代码实现相同的结果:

<maps:MapControl Name="MapaElementov" HorizontalAlignment="Left" Margin="10,47,0,0" VerticalAlignment="Top" Height="663" Width="1260" MapServiceToken="some-code"
                 ZoomLevel="9" RotateInteractionMode="Disabled" TiltInteractionMode="Disabled" MapRightTapped="MapaElementov_MapRightTapped">

    <FlyoutBase.AttachedFlyout>
        <MenuFlyout x:Name="MapFlyout">
            <MenuFlyoutItem Text="Item 1"/>
            <MenuFlyoutItem Text="Item 2"/>
        </MenuFlyout>
    </FlyoutBase.AttachedFlyout>
</maps:MapControl>

...

private void MapaElementov_MapRightTapped(MapControl sender, MapRightTappedEventArgs args)
{
    MapFlyout.ShowAt(sender, new Point(args.Position.X, args.Position.Y));
}

如果需要,我认为您也可以轻松地将其打包到您自己的附加财产中。

编辑:我无法编译您的示例,因为显然 ContextFlyout 是在周年更新中引入的,所以我必须设置最小和目标版本来构建 14393 来运行它。

于 2017-01-29T05:49:54.073 回答