首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用轻击中的贴图移动

禁用轻击中的贴图移动
EN

Stack Overflow用户
提问于 2012-07-12 16:45:59
回答 1查看 326关注 0票数 1

我有一个地图,我在上面动态地显示图钉,并且希望在不与地图交互的情况下与图钉交互(所以我不能通过设置IsEnabled="False"来禁用地图,也不能使用地图的图像)。

我尝试过这里描述的技术:Handling tap on Pushpin in a fixed Map,它非常适合缩放和平移。

扩展这个想法,我已经为所有看起来匹配的事件设置了事件处理程序:

代码语言:javascript
复制
   Hold="map_Hold"
   MapPan="map_MapPan"
   MapZoom="Map_MapZoom"
   ManipulationStarted="map_ManipulationStarted"
   ManipulationDelta="map_ManipulationDelta"
   ManipulationCompleted="map_ManipulationCompleted"
   MouseLeftButtonDown="map_MouseLeftButtonDown"
   MouseLeftButtonUp="map_MouseLeftButtonUp"
   TargetViewChanged="map_TargetViewChanged"
   ViewChangeStart="map_ViewChangeStart"
   ViewChangeEnd="map_ViewChangeEnd"
   ViewChangeOnFrame="map_ViewChangeOnFrame"

(在事件处理程序中,我只需设置e.Handled = true;)

然而,你仍然可以通过在地图上进行轻弹动作来平移地图(就像你如何在照片应用程序中轻弹到下一个图像一样)。

有没有办法完全禁用地图平移?或者有没有一种方法来与引脚交互,如果IsEnabled="False"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-11 00:59:11

这篇文章是不久前发布的,所以你现在可能已经解决了这个问题。但我今天遇到了这个问题,这就是我的解决方案。(它不是很优雅,但似乎工作得很好)。

对我来说,这个问题发生在拖放图钉后松开它的时候--即使我在拖拽图钉时禁用了map_pan事件,地图仍然会从'flick‘手势移动,这是在拖放图钉后松开它时创建的。

首先,创建一个页面作用域DespatchTimer和一个整数,它将是我们的计数器:

代码语言:javascript
复制
    DispatcherTimer dti = new DispatcherTimer();
int counter =0;

接下来,在图钉的MouseLeftButton up事件中,禁用您的地图,以1为间隔启动调度计时器。还要为其创建Tick事件处理程序。

代码语言:javascript
复制
 private void pushpin_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {
Map.IsEnabled = false;
dti.Interval = new TimeSpan(0, 0, 0, 0, 1); // 1 Seconds
        dti.Start();
        dti.Tick += new EventHandler(dti_Tick);
//other code logic
}

接下来,创建dti_Tick事件。在tick事件中,在进入tick事件的第二次迭代时停止调度计时器,并重新启用映射。重置计数器以备将来使用。

代码语言:javascript
复制
 void dti_Tick(object sender, EventArgs e)
    {
        counter++;
        if (counter>= 1)
        {
            dti.Stop();
            Map.IsEnabled = true;
            counter= 0;
        }
    }

这个过程将会在你的拖放图钉逻辑之后停止任何“轻弹”的发生。显然,这段代码可以进一步优化,但希望它能对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11448091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档