2011-01-05 8 views
5

Sto lavorando a un'applicazione Windows Phone 7 che utilizza FluidMoveBehavior in alcuni dei miei ListBox. Per qualche motivo, l'animazione FluidMoveBehavior sembra voler attivarsi in orari inappropriati. Al momento ho un ListBox sulla mia pagina principale, e io uso il seguente ItemsPanelTemplate che è solo uno StackPanel di base con una FluidMoveBehavior collegato ad esso:FluidMoveBehavior triggering nella navigazione Indietro

<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> 

Questo funziona bene quando ho aggiungere/rimuovere gli elementi, mentre sullo stesso schermo . L'animazione suona perfettamente. Tuttavia, quando si passa a una nuova pagina dalla mia pagina principale, quindi si torna indietro, l'animazione di spostamento fluido viene attivata come se tutti gli elementi fossero aggiunti contemporaneamente. C'è un modo per disabilitare questo comportamento in modo che si innesca solo l'animazione quando la lista cambia effettivamente?

+1

Non riesco a riprodurre i sintomi. Quale meccanismo stai usando per navigare tra le schermate? –

+0

Il pulsante Indietro o la funzione GoBack() attivano questo comportamento. Cordiali saluti, i ListBox sono ospitati in PivotItems in un PivotControl. Il layout viene invalidato in qualche modo dal PivotControl quando l'utente torna indietro? Forse sta causando l'attivazione del comportamento? –

risposta

1

questo sta succedendo perché quando si naviga verso la pagina con la casella di riepilogo, la casella di riepilogo viene creata di nuovo, che è simile all'aggiunta di tutti gli elementi in una sola volta che in tunes attiva il trigger di movimento fluido. Una possibile (potrebbe non essere la soluzione legittima) è quella di avere due template ItemPanel identici, uno con il comportamento e l'altro senza di esso. Quando si accede per la prima volta alla pagina, applicare il modello senza il comportamento. Successivamente sostituirlo con quello con il comportamento. Spero che questo aiuti.

Problemi correlati