Chciałbym wyświetlić animacji gif, takich jak ładowanie ... w moim XAML, jak moja procedura postępuje. Dowiedziałem się, że nie można tego łatwo zrobić w WPF, ponieważ załadowałem mój GIF i pokazuje on tylko pierwszą klatkę. Jakie są najlepsze sposoby wyświetlania animacji w WPF.wyświetlanie animacji gif w WPF
Odpowiedz
Można osadzić MediaElement
<MediaElement LoadedBehavior="Play" Source="path/to.file" />
lub WinForm PictureBox:
<wfi:WindowsFormsHost>
<winForms:PictureBox x:Name="pictureBoxLoading">
</winForms:PictureBox>
</wfi:WindowsFormsHost>
Jednakże, polecam znalezienie sposobu, aby to zrobić w WPF. Rzuć okiem na StoryBoards i animacje. Nie wiedząc, co próbujesz osiągnąć lub dlaczego chcesz to zrobić, ciężko jest ci doradzić dalej.
Miałem ten problem, dopóki nie odkryłem, że w WPF4 można symulować własne animacje klatek kluczowych. Najpierw podziel animację na serię obrazów, zatytułując je jako "Image1.gif", "Image2, gif" i tak dalej. Zaimportuj te obrazy do zasobów rozwiązania. Zakładam, że umieściłeś je w domyślnej lokalizacji zasobów dla obrazów.
Użyjesz sterowania obrazem. Użyj następującego kodu XAML. Usunąłem inne niż niezbędne.
<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>
Zaadoptowałem to dla gry Windows Phone, nad którą pracowałem, i to działało! (Pamiętaj, nie możesz tego zrobić za pomocą 'EventTrigger's, ale po prostu przenieś kod do normalnego storyboardu) – GONeale
Otrzymuję błąd" DiscreteObjectKeyFrames nie są obsługiwane w WPF ". –
wystarczy kliknąć prawym przyciskiem na plik .gif i zmienić dwie właściwości:
Budowa Działanie: osadzonego zasobu
Kopiuj do wyjścia katalogu: Skopiuj jeśli Nowszy
Następnie
<MediaElement x:Name="myGif" UnloadedBehavior="Manual" Source="giphy_s.gif" MediaEnded="MediaElement_MediaEnded"/>
i ustawić wydarzenie dla kontynuować uruchamianie
private void MediaElement_MediaEnded(object sender, RoutedEventArgs e)
{
myGif.Position = new TimeSpan(0, 0, 1);
myGif.Play();
}
- 1. Wyświetlanie GIF w aplikacji WP7 z Silverlight
- 2. Wyświetlanie animacji pushviewcontroller wygląda jak presentModalViewController
- 3. Dynamiczna zmiana animacji rotacji w programie WPF
- 4. WPF Obracanie animacji prostokątnej w XAML
- 5. Szerokość animacji do rzeczywistej szerokości w WPF?
- 6. Efekt automatu jQuery bez użycia pliku gif do animacji
- 7. Edytowanie GIF w języku C#
- 8. Wyświetlanie postępu punktu kropki w przycisku WPF
- 9. Animacje jQuery GIF
- 10. Wyświetlanie animacji ładowania dla elementu iframe w modalnym oknie dialogowym interfejsu użytkownika jQuery
- 11. Tworzenie wideo z animacji WPF/Silverlight
- 12. Biblioteka animacji interfejsu użytkownika programu WPF
- 13. zaawansowana biblioteka gif
- 14. WinRT - Wyświetl animowany GIF w formancie
- 15. Zapobieganie WPF 4,0 DataGrid wyświetlanie pustą kolumnę
- 16. WPF Łączenie Datagrid i wyświetlanie kolumn
- 17. Jak odtwarzać animowane GIF w TextView?
- 18. Jak wyświetlić animowany GIF w React Native?
- 19. Wyświetlanie czasu w lokalnej strefie czasowej w WPF/XAML
- 20. Animacja GIF w Gnuplot
- 21. Czy można wstrzymać obraz .gif?
- 22. Jak ustawić ikonę każdej karty w fragmencie strony fragmentarycznej do animacji gif?
- 23. Wyświetlanie html z ciągu w formancie WPF WebBrowser
- 24. Zwiększanie wyświetlanie określonej kolumny w widoku siatki WPF
- 25. Przechodzenie obrazu przez WCF i wyświetlanie ich w datagrid WPF
- 26. Dostęp do ramek GIF z C#
- 27. Przykład animacji prostej animacji
- 28. Jak przyciąć animowany gif za pomocą ImageMagick?
- 29. Jak podzielić .gif w ramkach?
- 30. Tworzenie etykiety WPF (lub innego elementu) za pomocą animacji
możliwy duplikat [Jak uzyskać animowany gif do pracy w WPF?] (Http://stackoverflow.com/questions/210922/how-do-i- get-an-animated-gif-to-work-in-wpf) –
[Dodanie "Ładowanie" -image na ListView] (http://stackoverflow.com/questions/1492096/adding-loading-image-on- top-of-listview) – hakre