private void UpdateLoadingBar()
{
var frameIndex = 0;
var frameCount = imagePaths.Count;
var timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(100);
timer.Tick += (sender, e) =>
{
loadingImage.Source = new BitmapImage(
new Uri(imagePaths[frameIndex], UriKind.RelativeOrAbsolute));
if (++frameIndex >= frameCount)
{
// Stop the timer when all frames have been displayed
timer.Stop();
}
};
timer.Start();
}
或者如果你熟悉异步编程,你可以使用
private async Task UpdateLoadingBar()
{
foreach (var imagePath in imagePaths)
{
loadingImage.Source = new BitmapImage(
new Uri(imagePath, UriKind.RelativeOrAbsolute));
// Delay between each frame (adjust the duration as needed)
await Task.Delay(100);
}
}
1条答案
按热度按时间kse8i1jr1#
假设你在XAML中有一个名为
image
的Image
元素,并且你的png文件的路径在一个名为imagePaths
的List<string>
中,你可以使用一个计时器:或者如果你熟悉异步编程,你可以使用
这需要从异步事件处理程序启动,如: