簡體   English   中英

WP7動態樞軸

[英]WP7 dynamic pivot

我在實現動態樞軸控制方面遇到了麻煩。 我想做的是使用樞軸創建一個圖像庫,您可以通過滑動更改圖像。 這通過在我的可觀察集合上綁定它的itemsource以在每個pivotitem上顯示一個圖像,本身與樞軸控件一起工作。 問題是,當我的圖庫包含10張以上的圖片時,這個解決方案占用了大量內存,因為它創建了相同數量的pivotitems。

我嘗試的是用3個項目初始化我的集合,當前顯示的項目,前一個和下一個項目,當用戶滑動時,我更新了我的列表。 我嘗試使用“SelectionChanged”事件以及手勢監聽器...到目前為止沒有成功。 有沒有人試過這樣做? 如果是,我該如何實施呢?

我做了類似的事情,但不使用Pivot控件。 下載Silverlight工具包(http://silverlight.codeplex.com/)並使用GestureListener捕獲滑動操作:

<toolkit:GestureService.GestureListener>
        <toolkit:GestureListener DragCompleted="OnDrag"/>
</toolkit:GestureService.GestureListener>

然后在代碼中,您有一個捕獲滑動事件的事件處理程序,並相應地更新圖像。 這是我用來更改頁面的事件處理程序:

private void OnDrag(object sender, DragCompletedGestureEventArgs e)
{
    if (e.Direction == System.Windows.Controls.Orientation.Horizontal)
    {
        if (e.HorizontalChange < 0)
        {
            TurnPagesForward(1);
        }
        else
        {
            TurnPagesBackward(1);
        }
    }
}

如果更新列表中的項目,則綁定將丟失,因此這可能無法正常工作。

  • 可能有用的是以下內容(但我沒有測試過):
  • 從包含五個項目的初始集合開始。
  • 確保在列表中顯示第三個項目,以便可見項目位於列表的中間。
  • 更改可見頁面時,會引發SelectionChanged事件。
  • 如果向右移動,則所選索引將更改為第四個元素。 在這種情況下,您將刪除列表中的第一個元素並添加新的第五個元素。
  • 如果向左移動,則執行相反操作並刪除列表中的最后一個元素。

這應確保您始終可以在不移除或添加任何可見項目的情況下來回移動。

我不確定這是否有效,但值得一試。 :-)

不要這樣做。 很多人都嘗試過,它不能擴展到大量的圖像。

雖然如果可以使用樞軸控制來創建簡單的圖像導航控件真的很好,但這是不切實際的。 您需要使用不同的方法自行完成更復雜的路徑。 (許多人嘗試過不同的方式。根據您的需求/經驗/偏好去做。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM