Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可拖动图钉windows phone 7 bing地图控件_C#_Silverlight_Windows Phone 7_Bing Maps - Fatal编程技术网

C# 可拖动图钉windows phone 7 bing地图控件

C# 可拖动图钉windows phone 7 bing地图控件,c#,silverlight,windows-phone-7,bing-maps,C#,Silverlight,Windows Phone 7,Bing Maps,我只是想知道是否有一些关于如何在WindowsPhone7应用程序中为地图编程一个可拖动图钉的合适资源。我已经仔细看过了,只能找到有关如何为浏览器应用程序执行此操作的信息 理想情况下,我希望用户能够单击图钉并将其拖动到地图上的某个位置。然而,目前我唯一能想到的方法是用户拖动地图,图钉仍位于地图的中心。可以。下面是一篇关于如何实现这种行为的好文章 我还没有在WP7应用程序上看到这一点-但下面是对Silverlight 3的描述- 在实现这一点时,我想您应该注意图标相对于手指的实际放置位置-例如,如

我只是想知道是否有一些关于如何在WindowsPhone7应用程序中为地图编程一个可拖动图钉的合适资源。我已经仔细看过了,只能找到有关如何为浏览器应用程序执行此操作的信息


理想情况下,我希望用户能够单击图钉并将其拖动到地图上的某个位置。然而,目前我唯一能想到的方法是用户拖动地图,图钉仍位于地图的中心。

可以。下面是一篇关于如何实现这种行为的好文章


我还没有在WP7应用程序上看到这一点-但下面是对Silverlight 3的描述-


在实现这一点时,我想您应该注意图标相对于手指的实际放置位置-例如,如果您在单击/按住/拖动时查看文本插入符号在文本块中的移动方式,然后,您将看到插入符号位置在手指上方偏移,以便您始终可以看到它。

我可以通过为MouseMove添加事件处理程序并将图钉更新到鼠标位置来拖动图钉

<my:Pushpin x:Name="pushpin" MouseLeftButtonDown="pushpin_MouseLeftButtonDown" MouseLeftButtonUp="pushpin_MouseLeftButtonUp" MouseMove="pushpin_MouseMove"/>

这将防止在拖动图钉时平移地图。

感谢链接,问题是,它根据以下链接引用了Microsoft.Maps.MapControl:你不能在电话上这样做。我认为该链接已经过时了-Bing地图SDK已经提供了几个月了-我甚至从IronRuby使用过它-我从昨天开始就在做这件事,但我想我已经找到了解决方案我自己设计的。基本上,在地图和手势上做了一点小游戏,找到了一种方法,通过使用给定纬度的图像分辨率和与椭圆以及经纬线之间的距离相关的两个天文公式,可以找到地图上点击的准确位置,并将其与地图上的真实位置联系起来在地球上。也感谢您的链接,但正如我在上面向斯图尔特提到的,在Windows Phone 7应用程序中包含Microsoft.Maps.MapControl显然存在一些问题
        private void mapControl_MapPan( object sender, MapDragEventArgs e )
        {
          if( isDragging )
          {
            e.Handled = true;
          }
        }

        private void pushpin_MouseLeftButtonDown( object sender, MouseButtonEventArgs e )
        {
          pushpin.CaptureMouse( );
          isDragging = true;
        }

        private void pushpin_MouseLeftButtonUp( object sender, MouseButtonEventArgs e )
        {
          pushpin.ReleaseMouseCapture( );
          isDragging = false;
        }

        private void pushpin_MouseMove( object sender, MouseEventArgs e )
        {
          pushpin.Location = mapControl.ViewportPointToLocation( e.GetPosition( mapControl) );
        }