Скользящий эффект при добавлении новых элементов в WPF ListBox - PullRequest
2 голосов
/ 16 февраля 2010

У меня есть элемент управления WPF ListBox, который отображает элементы RSS-канала. Я периодически проверяю источник RSS-канала на предмет новых товаров. Обнаружив новый элемент, я добавляю его в наблюдаемую коллекцию, которая немедленно добавляет новый элемент на экран ListBox.

Есть ли способ «вставить» новый элемент сверху, отталкивая существующие элементы? Как бы я достиг такого эффекта? Можно ли это сделать с помощью ListBox или мне нужно прибегнуть к собственному контейнеру, такому как StackPanel, и анимировать, например, высоту вновь добавленных элементов управления программным способом?

Ответы [ 2 ]

5 голосов
/ 16 февраля 2010

Я только что опубликовал ответ на этот вопрос, который очень похож на ваш.

WPF, как анимировать список компонентов

2 голосов
/ 16 февраля 2010

Это можно сделать с помощью ListBox. Используйте ItemContainerStyle для стилизации элементов ListBoxItems, создаваемых привязкой: этот стиль может включать анимации, например, добавив EventTrigger для события Loaded в Style.Triggers и преобразует. Например, в вашем триггерном действии вы можете анимировать высоту, чтобы элемент расширялся, или, если высота неизвестна, вы можете установить стиль в ScaleTransform, а в вашем триггерном действии анимировать ScaleY этого преобразования от 0 до 1.

...