2010-02-15 69 views
2

我有一個WPF ListBox控件,它顯示RSS源的項目。我偶爾會檢查RSS源的來源以瞭解新項目。一旦我檢測到一個新項目,我將它添加到可觀察集合中,該集合立即將新項目添加到ListBox顯示中。將新項目添加到WPF列表框時的滑動效果

有沒有辦法從頂部「滑入」新項目,推下現有項目?我將如何達到這樣的效果?它可以用一個ListBox來完成,還是需要求助於我自己的容器,比如一個StackPanel和動畫,例如新增控件的高度編程?

回答

2

它可以用ListBox來完成。使用ItemContainerStyle對綁定爲您創建的ListBoxItems進行樣式設置:此樣式可以包含動畫,例如動畫。通過爲Style.Triggers添加一個用於Loaded事件的EventTrigger,並進行轉換。例如,在觸發器動作中,您可以爲高度設置動畫,以便項目展開到位,或者如果高度未知,則可以讓樣式設置ScaleTransform,並在觸發器動作中將該變換的ScaleY從0設置爲1.

+0

這似乎是可行的,但我遇到的問題與故事板具有綁定(我綁定到是否新款財產,所以我在ListBox中最初裝載現在只是動畫新項目,並不是所有的項目) 。 – 2010-02-17 00:39:38

+0

我不確定IsNew屬性是什麼,但這可能是故事板中觸發器的一部分,而不是綁定;取決於你如何做。您需要發佈一些更多的細節來診斷問題;但我建議作爲第一步,將其放在一邊,然後探索Josh的解決方案(它更加整潔),並且只有在他的方案不適用時才能回到我的身邊。 – itowlson 2010-02-17 01:56:43

5

我剛剛發佈了與您的問題非常相似的問題答案。

WPF how to animate a list of components

+0

不錯的一個 - 使用通用動畫面板,然後通過ItemsPanel進行插槽,整齊地模塊化和美麗的習慣。謝謝! – itowlson 2010-02-16 06:32:53

相關問題