2011-09-03 12 views
7

Ho solo pensato di sapere già come funziona la sintassi WPF e XAML .... wrooong.Margine/spessore anim.

Ho ricevuto il messaggio:

'WithEvents' variables can only be typed as classes, interfaces or type parameters with class constraints. 

prega, sai perché questa sintassi è sbagliato?

Ho bisogno di usare il singolo valore come doppio. Funziona più tardi con uno storyboard in codebehind.

saluti Error Screenshot

Voglio solo di animare il rettangolo rosso con uno storyboard in posizione e le dimensioni. Forse XAML è la soluzione giusta comunque? Red rectangle

+0

Vale la pena tenendo presente che WP7 utilizza Silverlight, che ha alcune [sottili differenze con WPF] (http: // msdn.microsoft.com/en-us/library/cc903925(VS.95).aspx). –

risposta

15

Per animare spessore, utilizzare uno Storyboard simili (da MSDN esempio):

<BeginStoryboard> 
    <Storyboard>  
     <!-- BorderThickness animates from left=1, right=1, top=1, and bottom=1 to 
     left=28, right=28, top=14, and bottom=14 over one second. --> 
     <ThicknessAnimation 
     Storyboard.TargetProperty="BorderThickness" 
     Duration="0:0:1.5" FillBehavior="HoldEnd" From="1,1,1,1" To="28,14,28,14" /> 
    </Storyboard> 
    </BeginStoryboard> 

realtà, per animare qualsiasi proprietà che assume valori come "w, x, y, z" si utilizza un ThicknessAnimation

Mi sembra che quello che vuoi fare sia spostare il rettangolo rosso a destra.

In tal caso, inserire il tutto in un Canvas e utilizzare un DoubleAnimation sulla posizione del rettangolo rosso.

In entrambi i casi, l'errore che si ottiene non proviene dal piccolo codice fornito dall'utente, se si desidera consultarlo, si prega di fornire l'uso con più codice.

Edit: dal ThicknessAnimation sembra essere non disponibile su WP7, provate questo invece:

<BeginStoryboard> 
    <Storyboard>  
     <DoubleAnimation 
     Storyboard.TargetProperty="BorderThickness.Top" 
     Duration="0:0:1.5" To="15" /> 
     <DoubleAnimation 
     Storyboard.TargetProperty="BorderThickness.Left" 
     Duration="0:0:1.5" To="25" /> 
    </Storyboard> 
    </BeginStoryboard> 
+0

Vedere la mia risposta modificata. –

0

Penso che sia correlato a quello che stai facendo con MyRectangleMargin altrove in XAML o code-behind. Ricorda, Thickness è una struct non una classe, quindi non sarai in grado di usarla ovunque che si aspetta un'istanza di classe.

+0

Ho aggiunto un commento nella domanda. Voglio animare il rettangolo rosso. Forse hai ragione. Ma come risolverlo? – Nasenbaer

Problemi correlati