Il massimo della versatilità ed espressività lo raggiungiamo utilizzando il tipo Spline, come dimostrato dal prossimo esempio, nel quale muoviamo il rettangolo lungo tutta la superficie del Canvas ed a velocità differenti.
<Canvas x:Name="LayoutRoot" Background="Azure">
<Canvas.Resources>
<Storyboard x:Name="MyStoryboard">
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Canvas.Left)"
Duration="0:0:8">
<SplineDoubleKeyFrame Value="300" KeyTime="0:0:2"
KeySpline="0.25,0.75 0.75,0.25" />
<SplineDoubleKeyFrame Value="100" KeyTime="0:0:4"
KeySpline="0.75,0.25 0.25,0.75" />
<SplineDoubleKeyFrame Value="50" KeyTime="0:0:6"
KeySpline="0.25,0.75 0.75,0.25" />
<SplineDoubleKeyFrame Value="200" KeyTime="0:0:8"
KeySpline="0.75,0.25 0.25,0.75" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames Storyboard.TargetName="MyRectangle"
Storyboard.TargetProperty="(Canvas.Top)"
Duration="0:0:8">
<SplineDoubleKeyFrame Value="50" KeyTime="0:0:2"
KeySpline="0.25,0.75 0.75,0.25" />
<SplineDoubleKeyFrame Value="250" KeyTime="0:0:4"
KeySpline="0.75,0.25 0.25,0.75" />
<SplineDoubleKeyFrame Value="50" KeyTime="0:0:6"
KeySpline="0.25,0.75 0.75,0.25" />
<SplineDoubleKeyFrame Value="100" KeyTime="0:0:8"
KeySpline="0.75,0.25 0.25,0.75" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</Canvas.Resources>
<Rectangle x:Name="MyRectangle" Width="300" Height="150"
Fill="Orange"
MouseLeftButtonDown="MyRectangle_MouseLeftButtonDown" />
</Canvas>
Oltre alle comuni proprietà KeyTime e Value, per ogni SplineDoubleKeyFrame dobbiamo indicare quali sono i due punti di controllo necessari alla rappresentazione della curva di Bézier, con la solita sintassi "x1,y1 x2,y2". Dal precedente frammento di codice possiamo anche notare che, in XAML, proprietà particolari come Canvas.Left, quindi che hanno il punto nel nome, debbano essere definite fra parentesi tonde.
Il markup XAML da scrivere per generare animazioni articolate è molto verboso e complesso, realizzare grandi effetti applicati contemporaneamente a diversi elementi dell'interfaccia scrivendo tutto il codice dichiarativo a mano è impensabile.
Editor come Expression Blend rendono il lavoro molto più semplice e mantenibile. Con Blend possiamo registrare l'animazione in modo visuale spostando gli oggetti sulla scena e lavorando con la timeline. Una volta impostato tutto sarà il programma a generare tutto lo XAML necessario a riprodurre l'animazione in Silverlight.
LINQ e la trappola della 'deferred execution'Una "trappola" in cui si può incappare utilizzando il risultato di... |
C#, le Custom Type ConversionConversioni personalizzate tra classi, creare metodi particolari per... |
Introduzione a Entity FrameworkIl framework ORM messo a disposizione da .NET |
Repeater: visualizzare un feed RSSUtilizzare il controllo XMLDataSource e sfruttare il metodo XPath()... |
Repeater, il server control "semplice"Cos'è e come funziona il controllo Repeater |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Guida Visual Studio 2010L'ambiente di sviluppo di riferimento per sviluppare applicazioni su... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Corso Progettazione database11 Maggio 2012 a Milano |
|
|
Amministratore di Reti Windows Server 200811 Giugno 2012 a Milano |
|
Nessun corso previsto |