什么控件(如果有的话)可用于在xaml中循环.gif?

时间:2012-10-21 16:01:36

标签: c# windows xaml windows-8 microsoft-metro

我正在创建一个Win 8应用程序,我需要向用户显示gif循环。有趣的是,我使用相同的数据模板来显示各种图像类型,包括png和jpg。

是否有控件会这样做?如果没有,推荐的实现此功能的方法是什么?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

在动画gif中查看动画的一种方法是在WebView元素中渲染gif。

将gif添加到项目中并标记为Content。然后将WebView的源设置为gif

<Grid >
  <WebView Source='ms-appx-web:///Assets/spiral.gif'>
 </WebView>

</Grid>

注意:Webview通过IE 10呈现内容,并且它不像其他元素那样具有交互性。有关详细信息,请参阅this MSDN article

修改

这是绑定到集合的一种方法。

class GifCollection : ObservableCollection<Uri> {
}



// in the view
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    var gifs = new GifCollection();

    gifs.Add(new Uri("http://i.imgur.com/eoNiq.gif"));
    gifs.Add(new Uri("ms-appx-web:///Assets/spiral.gif"));

    this.DataContext = gifs;

}

XAML中的datatemplate

<ListBox ItemsSource='{Binding}'>
      <ListBox.ItemTemplate>
        <DataTemplate>
          <StackPanel>

             <!-- set the width, height, otherwise the WebView 
                  is not visible in the datatemplate -->
            <WebView Source='{Binding }'
                     Width='450'
                     Height='450'>

            </WebView>
          </StackPanel>

        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>