3

マウスがアイテムのリストの上に置かれるまで、ゆっくりと垂直にスクロールしたいアイテムのリストがあります。すると、スクロールバーが表示されます。私が立ち往生している部分は、リストが常にループする効果を得る最良の方法です。あなたが持っている場合:

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

スクロールすると、次のようになります。

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

2 つのコレクションを持たずにこれを行う方法はありますか?

4

1 に答える 1

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);
        }
    }
于 2012-06-12T17:00:45.593 に答える