如何创建加载动画

时间:2012-10-06 12:16:08

标签: xaml microsoft-metro windows-runtime winrt-xaml windows-store-apps

我的应用程序中有很多媒体元素通过网络流式传输。有时候我需要等2-3秒才能完成。这对我来说不是问题。问题是我不知道如何制作某种加载动画。我有一个加载栏的动画GIF,但我不知道如何显示它。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

你不需要它的GIF。有一个XAML控件 ProgressRing 。将它的 IsActive 属性绑定到指示您正在加载的属性。

类似的东西:

public class DataService : BindableBase
{
    private bool _isLoading;

    public bool IsLoading 
    {
        get 
        {
            return _isLoading;
        }
        set 
        {
            SetProperty(ref _isLoading, "IsLoading");
        }
    }

    public void MyMethodWhichTakesLongTime() 
    {
        IsLoading = true;

        // Do some time consumption

        IsLoading = false;
    }
}

对于XAML,例如:

<ProgressRing IsActive="{Binding IsLoading}" 
              DataContext="{Binding MyDataService}" 
              Width="50" 
              Height="50" />

由于绑定(以及来自标准MS模板的BindableBase(否则您需要实现INotifyPropertyChanged)),当您的数据服务正在执行某些操作时,ProgressRing将自动激活。

答案 1 :(得分:2)

ProgressBar也可用,它是类似于Windows Phone 7的水平加载栏

对于不确定的进度条,您可以使用

<ProgressBar Visibility="Visible" IsIndeterminate="True" />