FluidMoveBehavior срабатывает при навигации назад - PullRequest
5 голосов
/ 05 января 2011

Я работаю над приложением Windows Phone 7, которое использует FluidMoveBehavior в некоторых моих списках. По какой-то причине анимация FluidMoveBehavior, кажется, хочет активироваться в неподходящее время. В настоящее время у меня есть ListBox на моей главной странице, и я использую следующий ItemsPanelTemplate, который является просто базовой StackPanel с присоединенным к нему FluidMoveBehavior:

<ItemsPanelTemplate x:Key="fancyListBoxItemsPanelTemplate"> 
    <StackPanel> 
        <Custom:Interaction.Behaviors> 
            <il:FluidMoveBehavior AppliesTo="Children"> 
                <il:FluidMoveBehavior.EaseX> 
                    <ExponentialEase EasingMode="EaseInOut"/> 
                </il:FluidMoveBehavior.EaseX> 
                <il:FluidMoveBehavior.EaseY> 
                    <ExponentialEase EasingMode="EaseInOut"/> 
                </il:FluidMoveBehavior.EaseY> 
            </il:FluidMoveBehavior> 
        </Custom:Interaction.Behaviors> 
    </StackPanel> 
</ItemsPanelTemplate> 

Это прекрасно работает, когда я добавляю / удаляю элементы, находясь на одном экране. Анимация играет отлично. Однако, когда я перехожу на новую страницу с моей главной страницы, а затем возвращаюсь назад, анимация плавного перемещения запускается так, как если бы все элементы были добавлены одновременно. Есть ли способ отключить это поведение, чтобы оно вызывало анимацию только тогда, когда список действительно изменился?

1 Ответ

1 голос
/ 28 января 2011

это происходит потому, что когда вы переходите на страницу со списком, список снова создается, что аналогично добавлению сразу всех элементов, которые в настройках запускают триггер перемещения жидкости.Одно из возможных (может и не быть законных) решений - иметь два идентичных шаблона ItemPanel, один с поведением, а другой без него.При первом переходе на страницу примените шаблон без поведения.Позже замените его на тот, что с поведением.Надеюсь, это поможет.

...