UWP MapControl MenuFlyout не будет отображаться
Я использую 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>
Что я здесь не так делаю?
1 ответ
Когда я пытаюсь запустить ваш пример, он даже не компилируется. Я получаю это сообщение об ошибке, указывающее на строку с 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 был представлен в Anniversary Update, поэтому мне пришлось установить минимальную и целевую версию для сборки 14393, чтобы запустить его.