2012-06-12 40 views
3

我有一個項目列表,我想要垂直滾動,直到鼠標懸停在項目列表上。然後,會出現一個滾動條。我被卡住的部分是讓列表的效果不斷循環的最佳方式。所以,如果您有:如何在Silverlight中製作垂直行情?

----- 
A 
B 
C 
D 
E 
----- 

將滾動是這個樣子:

---- 
D 
E 
A 
B 
C 
---- 

有我的方式做到這一點,而無需兩個集合?

+0

也許這樣的事情會幫助你? [wp7循環選擇器](http://babaandthepigman.wordpress.com/2010/09/22/wp7-looping-selector/) – Rachel

回答

0

你可以做這樣的事情:

ObservableCollection<string> myList; 
    public MainPage() 
    { 
     InitializeComponent(); 
     myList = new ObservableCollection<string>(); 
     myList.Add("A"); 
     myList.Add("B"); 
     myList.Add("C"); 
     myList.Add("D"); 
     myList.Add("E"); 

     System.Threading.Timer t = new System.Threading.Timer(new System.Threading.TimerCallback(TimerFired)); 
     t.Change(500, 500); 

     listBox2.ItemsSource = myList ;   
    } 

    private void TimerFired(object sender) 
    { 
     Pop(); 
    } 
    private delegate void PopDelegate(); 
    private void Pop() 
    { 
     if (this.Dispatcher.CheckAccess()) 
     { 
      string item = myList[myList.Count - 1]; 
      myList.RemoveAt(myList.Count - 1); 
      myList.Insert(0, item); 

     } 
     else 
     { 
      this.Dispatcher.BeginInvoke(new PopDelegate(Pop), null); 
     } 
    } 
+0

有趣的想法。看着你的代碼,而不是滾動,你只是重新排序列表。不過,我正在嘗試做一個更流暢的滾動動作。謝謝,不過。 – Justin