Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.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# 全景图是如何实现的?我需要创建一个垂直的,类似于诺基亚地图_C#_Silverlight_Windows Phone_Nokia - Fatal编程技术网

C# 全景图是如何实现的?我需要创建一个垂直的,类似于诺基亚地图

C# 全景图是如何实现的?我需要创建一个垂直的,类似于诺基亚地图,c#,silverlight,windows-phone,nokia,C#,Silverlight,Windows Phone,Nokia,背景: 我是silverlight/windows phone的新手 我想创建类似诺基亚地图(windows phone 8版本)的内容。在“诺基亚地图”中,当您单击“搜索”并获得搜索结果时,页面将分为两部分,上部为地图,下部为结果,您可以使用手指手势在地图和结果之间滚动 我最初的解决方案是:创建一个包含两行的网格,并动态更改(使用带样条线移动的DoubleAnimation)网格行的高度。例如,显示地图时,底部行的高度将缩小,显示底部行时,地图的高度将缩小 然而,我很快发现,这可能不是诺基亚地

背景:

我是silverlight/windows phone的新手

我想创建类似诺基亚地图(windows phone 8版本)的内容。在“诺基亚地图”中,当您单击“搜索”并获得搜索结果时,页面将分为两部分,上部为地图,下部为结果,您可以使用手指手势在地图和结果之间滚动

我最初的解决方案是:创建一个包含两行的网格,并动态更改(使用带样条线移动的DoubleAnimation)网格行的高度。例如,显示地图时,底部行的高度将缩小,显示底部行时,地图的高度将缩小

然而,我很快发现,这可能不是诺基亚地图的实现方式。例如,如果我将地图放在最上面一行,当最上面一行的高度缩小时,地图的位置仍然在中心附近(移动速度比缩小的行慢),这意味着地图本身不会像Nokia map那样“向上滚动”。此外,如果地图上有弹出窗口(如诺基亚地图中的“当前位置”按钮),则弹出窗口也不会卷起

理论上,上述问题仍然可以通过强制地图来解决,并且在网格行高度变化期间弹出窗口也向上滚动。但是经过一些比较和观察,我认为诺基亚地图的上下移动就像一幅全景图,有一个更大的垂直画布,你只需要显示画布的顶部或底部

这让我对如何实现垂直全景图之类的东西感到好奇

我的问题,

  • 您认为诺基亚地图是如何实现的?还有其他更简单的方法吗
  • 是否可以将现有的全景控件自定义为垂直全景
  • 如果我必须实现我自己的一个,如何实现它?我现在的想法是做一个大画布,自己画所有的东西?会不会太低了?有没有什么好方法可以通过垂直行为重新实现全景

  • 非常感谢。

    玩了一会儿,我觉得它比垂直全景图简单一些

    您的断言是正确的,它不是调整地图的大小,而是将其移出屏幕

    这就是我的想法

  • 我相信他们有一个2行的网格,两行的最小高度都在100px左右(没有检查实际值)。这个缓冲区是这样,当一个“屏幕”向上或向下滑动时,您可以看到另一个“屏幕”。只有在执行搜索后,底部屏幕才可见。然后,有一个点击和拖动处理代码,用于调整网格的整体顶部边距,使其上下滑动。这是根据手指位置的变化来完成的
  • 不,我很有信心你必须手工制作
  • 见答案1中我的想法

  • 我希望这是有道理的。这是一个棘手的问题,但我觉得这是在正确的道路上。

    我的建议是尝试选项3。您可以有一个页面大小的画布。垂直放置贴图控件和结果控件。然后,您需要处理该手势,并调整每个控件的Canvas.Top属性以将其上下移动

    说起来容易做起来难我知道。。。但如果是我,我会尝试这种方法