右键单击/长按

时间:2015-11-05 19:46:04

标签: c# xaml bing-maps win-universal-app

我正在为Windows 10(VS 2015)开发通用地图,我有一个地图控件。我想捕获长按/右键单击事件并确定用户按下的地理位置(lat / lng)。我曾尝试捕获右键单击事件,但它永远不会触发我是否在地图上使用鼠标或长按:

<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:App1"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:Maps="using:Windows.UI.Xaml.Controls.Maps"
    x:Class="App1.MainPage"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Maps:MapControl
            x:Name="Map"
            MapServiceToken="<MY_TOKEN>"
            ZoomInteractionMode="GestureAndControl"
            LandmarksVisible="True"
            IsRightTapEnabled="true"
            RightTapped="Map_RightTapped"
            />

    </Grid>
</Page>

C#:

using System.Diagnostics;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Input;

namespace App1
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void Map_RightTapped(object sender, RightTappedRoutedEventArgs e)
        {
            Debug.WriteLine("Here");
        }
    }
}

显然我错过了一些东西。感谢名单,

更新:我有各种各样的工作。我可以使用MapHolding事件从长按中捕获我需要的数据,但似乎没有支持右键单击。类文档表明存在MapRightTapped事件(https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.maps.mapcontrol.maprighttapped.aspx),但在XAML编辑器或使用intellisense的.cs文件中不可用。请注意,事件是MapHolding,而不是Hold(例如,使用myMap.MapHolding + = EventHandlerMethod, not myMap.Holding + = EventHandlerMethod)。

1 个答案:

答案 0 :(得分:0)

我认为地图上目前不支持右键单击事件,但这是本月晚些时候的下一次Windows更新。