Je voudrais afficher un gif d'animation tel que le chargement ... dans mon XAML car ma procédure progresse. J'ai découvert que cela ne peut pas être facilement fait dans WPF car j'ai chargé mon GIF et cela montre simplement la première image. Quels sont les meilleurs moyens d'afficher une animation dans WPF. p>
3 Réponses :
Vous pouvez incorporer un MediaElement
<wfi:WindowsFormsHost> <winForms:PictureBox x:Name="pictureBoxLoading"> </winForms:PictureBox> </wfi:WindowsFormsHost>
J'ai eu cette question, jusqu'à ce que je découvre cela dans WPF4, vous pouvez simuler vos propres animations d'image clé. Premièrement, diviser votre animation en une série d'images, les titre comme "image1.gif", "image2, gif", etc. Importer ces images dans vos ressources de solution. Je suppose que vous les mettez dans l'emplacement de la ressource par défaut pour les images.
Vous allez utiliser le contrôle de l'image. Utilisez le code XAML suivant. J'ai supprimé les non-essentiels. P>
<Image Name="Image1"> <Image.Triggers> <EventTrigger RoutedEvent="Image.Loaded" <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <ObjectAnimationUsingKeyFrames Duration="0:0:1" Storyboard.TargetProperty="Source" RepeatBehavior="Forever"> <DiscreteObjectKeyFrames KeyTime="0:0:0"> <DiscreteObjectKeyFrame.Value> <BitmapImage UriSource="Images/Image1.gif"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrames> <DiscreteObjectKeyFrames KeyTime="0:0:0.25"> <DiscreteObjectKeyFrame.Value> <BitmapImage UriSource="Images/Image2.gif"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrames> <DiscreteObjectKeyFrames KeyTime="0:0:0.5"> <DiscreteObjectKeyFrame.Value> <BitmapImage UriSource="Images/Image3.gif"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrames> <DiscreteObjectKeyFrames KeyTime="0:0:0.75"> <DiscreteObjectKeyFrame.Value> <BitmapImage UriSource="Images/Image4.gif"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrames> <DiscreteObjectKeyFrames KeyTime="0:0:1"> <DiscreteObjectKeyFrame.Value> <BitmapImage UriSource="Images/Image5.gif"/> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrames> </ObjectAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Image.Triggers> </Image>
J'ai adopté ceci pour un jeu de téléphone Windows, je travaillais et cela a fonctionné un régal! (Mind You, vous ne pouvez pas le faire avec Eventtrigger code> s mais déplacez simplement le code dans un scénario normal)
Je reçois "CreusteObjectKeyFames ne sont pas pris en charge dans WPF "Erreur.
Cliquez simplement sur le bouton droit de la souris sur le fichier .gif et modifier deux propriétés:
Copier le répertoire de sortie: Copier si plus récent Strong> p> alors p> et définissez l'événement pour continuer à exécuter p>
duplicailler possible de Comment puis-je obtenir un GIF animé travailler dans WPF?
Ajout de "Chargement" -Image au sommet de la liste de liste