Nội dung
Giới thiệu
Trong bài này, csharpcanban.com sẽ hướng dẫn các bạn sử dụng ảnh động (gif) trong WPF. Để đỡ mất công đi tìm các package trên internet, csharpcanban.com khuyên các bạn nên sử dụng package XamlAnimatedGif để tải ảnh động gif trong WPF. (Vì csharpcanban.com đã tìm rất nhiều rồi, và hiện tại chỉ sử dụng plugin này).
Cài đặt
Tải package XamlAnimatedGif ở đây: https://www.nuget.org/packages/XamlAnimatedGif/
Hoặc mở package manager console trên Visual Studio và gõ dòng lệnh sau để cài đặt
PM> Install-Package XamlAnimatedGif
Sử dụng
Bước 1: Sau khi cài đặt XamlAnimatedGif, thêm namespace vào tệp XAML của Window / Page / UserControl của bạn bằng đoạn mã sau
xmlns:gif="https://github.com/XamlAnimatedGif/XamlAnimatedGif"
Hoặc
xmlns:gif="clr-namespace:XamlAnimatedGif;assembly=XamlAnimatedGif"
Bước 2: Để hiển thị ảnh động gif trong WPF, hãy đặt điều khiển Image vào tệp XAML và đặt thuộc tính AnimationBehavior.SourceUri thành URI * của ảnh GIF như sau
<Image gif:AnimationBehavior.SourceUri="Images/loading.gif" />
Và sau đó các bạn hãy nhấn F5 để xem thành quả.
Một số lưu ý
Để thêm ảnh gif trong mã nguồn của tệp C# trong WPF thì ta sử dụng đoạn mã sau
AnimationBehavior.SetSourceUri(imageControl, uri);
Trong đó imageControl là tên của điều khiển Image trong WPF, còn uri có thể tạo ra bằng cách sau
Uri mophongUri = new Uri("/YourWindowControl;component/Images/yourgiffile.gif", UriKind.Relative);
Để lặp lại ảnh động ta sử dụng đoạn mã sau đối với tệp XAML
<Image gif:AnimationBehavior.SourceUri="Images/loading.gif" gif:AnimationBehavior.RepeatBehavior="3x" /> <!-- repeat 3 times --> <Image gif:AnimationBehavior.SourceUri="Images/loading.gif" gif:AnimationBehavior.RepeatBehavior="0:0:10" /> <!-- repeat for 10 seconds --> <Image gif:AnimationBehavior.SourceUri="Images/loading.gif" gif:AnimationBehavior.RepeatBehavior="Forever" /> <!-- repeat forever -->
Nếu sử dụng mã C# để thực hiện việc lặp lại ảnh gif thì ta thêm đoạn mã sau
AnimationBehavior.SetRepeatBehavior(imageControl, new RepeatBehavior(3)); AnimationBehavior.SetRepeatBehavior(imageControl, new RepeatBehavior(TimeSpan.FromSeconds(10))); AnimationBehavior.SetRepeatBehavior(imageControl, RepeatBehavior.Forever);
Lời kết
Trên đây là toàn bộ bài viết liên quan tới việc sử dụng ảnh động gif trong WPF, lời khuyên của csharpcanban.com là bạn chỉ nên sử dụng package XamlAnimatedGif vì nguyên lý của nó là chỉ tải 1 ảnh vào 1 thời điểm cho nên chiếm ít bộ nhớ RAM, vẫn còn một số package khác, tuy nhiên quá trình sử dụng rất tiêu tốn nhiều RAM.
Chúc các bạn thành công !!!