2013-02-24 50 views
1

背景:Panorama可能如何實現?我需要創建一個垂直的,類似於諾基亞地圖

我是silverlight/windows手機的新手。

我想創建一個像諾基亞地圖(Windows Phone 8版本)。在諾基亞地圖上,當您點擊搜索並獲得搜索結果時,頁面被分成兩部分,上部是地圖,下部是結果,您可以使用手指手勢在地圖和結果之間滾動。

我最初的解決方案是:製作一個2行的網格,並動態更改(使用帶樣條線移動的DoubleAnimation)網格行的高度。例如,當顯示地圖時,底部行的高度會縮小,當顯示底部行時,地圖的高度會縮小。

但是,我很快發現,這可能不是諾基亞地圖如何實現的方式。例如,如果我將地圖放在最上一行,並且頂部行的高度縮小,則地圖的位置仍然以中心爲中心(它會移動,但速度比行縮小時慢),這意味着地圖本身並不像諾基亞地圖那樣「向上滾動」。更重要的是,如果地圖上有Popup(如諾基亞地圖中的當前位置按鈕),Popup也不會捲起來。

那麼,從理論上講,上述問題仍然可以通過強制地圖來解決,Popup也會在網格行高變化時向上滾動。但經過一番比較和觀察,我認爲諾基亞地圖的向上和向下移動就像一個垂直畫布較大的全景圖,您只需顯示畫布的頂部或底部。

這讓我好奇如何可能實現像垂直全景。

我的問題,

  1. 在您看來,如何possibily諾基亞地圖來實現?還有其他更簡單的方法嗎?
  2. 是否可以將現有Panorama控件自定義爲垂直Panorama?
  3. 如果我必須實現我自己的一個,如何實現它?我目前的想法是製作一個大畫布,自己繪製一切?會不會太低?有沒有什麼好的方法來重新實現Panorama的垂直行爲?

非常感謝。

回答

1

玩了一下,我認爲這是一個更簡單的垂直全景。

你的說法是正確的,它不是調整地圖大小,而是簡單地將其從屏幕上移開。

所以這裏是我的想法。

  1. 我的看法是,他們有一個2行的網格,兩者的最小高度約爲100px左右(沒有檢查實際值)。這個緩衝區是當你向上或向下滑動時你可以看到另一個「屏幕」。當執行搜索時,底部屏幕即可見。然後,有一個輕敲和拖動處理代碼,用於調整網格的整個頂部邊距以上下滑動。這是根據手指位置的變化完成的。
  2. 不,我會很難相信你必須手動做到這一點。
  3. 查看答案1.

我希望這是有道理的我的想法。這是一個棘手的問題,但我覺得這是正確的道路。

1

我的建議是嘗試選項3.您可以有一個畫布大小的頁面。垂直放置地圖控件和結果控件。然後,您需要處理該手勢並調整每個控件的Canvas.Top屬性以將其向上/向下移動。

說起來容易,我知道...但如果是我,我會嘗試這種方法。

相關問題