Silverlight 禁用flicks中的贴图移动

Silverlight 禁用flicks中的贴图移动,silverlight,windows-phone-7,bing-maps,Silverlight,Windows Phone 7,Bing Maps,我有一个动态显示图钉的地图,并且希望在不与地图交互的情况下与图钉交互(因此我不能通过设置IsEnabled=“False”)来禁用地图,也不能使用地图的图像) 我已经尝试了这里描述的技术:,这对于缩放和平移非常有效 扩展这一思想,我为所有似乎匹配的事件设置了事件处理程序: Hold="map_Hold" MapPan="map_MapPan" MapZoom="Map_MapZoom" ManipulationStarted="map_ManipulationStarte

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

我已经尝试了这里描述的技术:,这对于缩放和平移非常有效

扩展这一思想,我为所有似乎匹配的事件设置了事件处理程序:

   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”

这篇文章是很久以前的事了,那么你现在可能已经解决了这个问题。但我今天遇到了这个问题,这就是我的解决方案。(虽然不太雅致,但似乎效果不错)

对我来说,在拖放图钉后松开图钉时会出现此问题-尽管我在拖动图钉时禁用了map_pan事件,但贴图仍会从拖放图钉后松开图钉时创建的“flick”手势移动

首先,创建一个页面范围的DispatchTimer和一个int作为计数器:

    DispatcherTimer dti = new DispatcherTimer();
int counter =0;
接下来,在图钉的MouseLeftButton up事件中,禁用地图,以1的间隔启动发送计时器。还要为其创建Tick事件处理程序

 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_勾选事件。在滴答声事件中,当发送计时器是滴答声事件的第二次迭代时,停止发送计时器,并重新启用映射。重置计数器以备将来使用

 void dti_Tick(object sender, EventArgs e)
    {
        counter++;
        if (counter>= 1)
        {
            dti.Stop();
            Map.IsEnabled = true;
            counter= 0;
        }
    }

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

这篇文章是很久以前的事了,所以您现在可能已经解决了这个问题。但我今天遇到了这个问题,这就是我的解决方案。(虽然不太雅致,但似乎效果不错)

对我来说,在拖放图钉后松开图钉时会出现此问题-尽管我在拖动图钉时禁用了map_pan事件,但贴图仍会从拖放图钉后松开图钉时创建的“flick”手势移动

首先,创建一个页面范围的DispatchTimer和一个int作为计数器:

    DispatcherTimer dti = new DispatcherTimer();
int counter =0;
接下来,在图钉的MouseLeftButton up事件中,禁用地图,以1的间隔启动发送计时器。还要为其创建Tick事件处理程序

 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_勾选事件。在滴答声事件中,当发送计时器是滴答声事件的第二次迭代时,停止发送计时器,并重新启用映射。重置计数器以备将来使用

 void dti_Tick(object sender, EventArgs e)
    {
        counter++;
        if (counter>= 1)
        {
            dti.Stop();
            Map.IsEnabled = true;
            counter= 0;
        }
    }
在拖放图钉逻辑之后,此过程将停止任何“flick”的发生。显然,这段代码可以进一步优化,但希望对您有所帮助