Страницы

Поиск по вопросам

воскресенье, 1 декабря 2019 г.

Анимация при удалении контрола из контейнера

#wpf #xaml


Есть какой то контейнер с автоматическим позиционированием элементов. Например, StackPanel
или WrapPanel. Коллекция заполнена привязкой данных. Допустим, я удаляю из контейнера
один из элементов. Как сделать плавное перемещение на новые места остальных элементов?
    


Ответы

Ответ 1



Могу посоветовать использовать класс Storyboard - см. пример на msdn. Он позволит менять определенные значения плавно, например, высоту или ширину. По поводу удаления: я бы посоветовал немного расширить View Model и добавить пару методов: Свойство VisibilityState {get;} В статье от Microsoft описывается реакция на наведение мыши. Аналогичным образом можно подписаться на выставление Hidden в Visibility и начать плавное уменьшение высоты. В конце надо поставить Visibility Collapsed. При установке этого свойства объект может уже удаляться из коллекции. Что происходит с точки зрения модели: Устанавливаем VisibilityState в Hidden Ждем, пока элемент не станет Collapsed. Удаляем элемент из коллекции Что происходит с точки зрения пользователя: Он совершает действие Элемент исчезает, а все остальное аккуратненько сдвигается.

Комментариев нет:

Отправить комментарий