2009-10-13 7 views
0

Pourquoi ce code ne fonctionne pas?ne peut pas comprendre pourquoi l'échantillon d'animation du livre ne fonctionne pas

<UserControl x:Class="slv.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> 
<Rectangle Fill="#FFFF0000" Stroke="#FF000000" Width="40" Height="40" Canvas.Top="40" x:Name="rect"> 
    <Rectangle.Triggers> 
     <EventTrigger RoutedEvent="Rectangle.Loaded"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rect" Storyboard.TargetProperty="(Canvas.Left)" > 
         <DiscreteDoubleKeyFrame KeyTime="0:0:1" Value="300" /> 
         <DiscreteDoubleKeyFrame KeyTime="0:0:9" Value="600" /> 
        </DoubleAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Rectangle.Triggers> 
</Rectangle> 

ce code de livre aboute silverlight 3, auteur Laurence Moroney

+0

Avez-vous une erreur ou est-ce qu'elle ne produit pas les résultats escomptés? – ChrisF

+0

lorsque je lance le débogage et que la page de test est ouverte et chargée rien ne se passe. mais j'attends que cet exemple me montre une animation de rectangle –

Répondre

0

Eh bien, si cela est d'un livre, ce qui est l'exacte XAML alors il est un peu bizarre. J'ai réussi à faire fonctionner l'exemple très bien, mais ce qui vous manque, c'est une toile.

Voici le code que j'ai modifié en ajoutant une toile autour du rectangle. Même s'il affichait quelque chose, cela n'aurait pas fonctionné si vous ne l'avez pas enveloppé dans un canevas, car dans l'animation il fait spécifiquement référence à la traduction du rectangle par rapport à une toile.

<UserControl x:Class="SilverlightApplication2.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> 
    <Canvas x:Name="LayoutRoot"> 
     <Rectangle Fill="#FFFF0000" Stroke="#FF000000" Width="40" Height="40" Canvas.Top="40" x:Name="rect"> 
      <Rectangle.Triggers> 
       <EventTrigger RoutedEvent="Rectangle.Loaded"> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rect" Storyboard.TargetProperty="(Canvas.Left)" > 
           <DiscreteDoubleKeyFrame KeyTime="0:0:1" Value="300" /> 
           <DiscreteDoubleKeyFrame KeyTime="0:0:9" Value="600" /> 
          </DoubleAnimationUsingKeyFrames> 
         </Storyboard> 
        </BeginStoryboard> 
       </EventTrigger> 
      </Rectangle.Triggers> 
     </Rectangle> 
    </Canvas> 
</UserControl> 
+0

génial! merci Johannes. auteur de ce livre a écrit que tag Canvas dans Silverlight pour le navigateur remplacé sur la balise UserControl. et certains de lui exemple est vraiment travaillé sans toile. –

Questions connexes