マウスがアイテムのリストの上に置かれるまで、ゆっくりと垂直にスクロールしたいアイテムのリストがあります。すると、スクロールバーが表示されます。私が立ち往生している部分は、リストが常にループする効果を得る最良の方法です。あなたが持っている場合:
-----
A
B
C
D
E
-----
スクロールすると、次のようになります。
----
D
E
A
B
C
----
2 つのコレクションを持たずにこれを行う方法はありますか?
マウスがアイテムのリストの上に置かれるまで、ゆっくりと垂直にスクロールしたいアイテムのリストがあります。すると、スクロールバーが表示されます。私が立ち往生している部分は、リストが常にループする効果を得る最良の方法です。あなたが持っている場合:
-----
A
B
C
D
E
-----
スクロールすると、次のようになります。
----
D
E
A
B
C
----
2 つのコレクションを持たずにこれを行う方法はありますか?
次のようなことができます。
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);
}
}