WPF如何播放帧序列图

希希啊希希 2017-02-01 05:40:39
照着几年前的一个帖子写了些,不能动欸,而且rect不是我想要的。就自己改了改,想直接用<image>


public partial class MainWindow : Window
{

private Storyboard sb;

public MainWindow()
{
InitializeComponent();
load();
sb.Begin();
}

//载入
private void load()
{
sb = new Storyboard();
ObjectAnimationUsingKeyFrames oauf = new ObjectAnimationUsingKeyFrames();
//加载一些图片,添加进去
for (int i = 305; i < 315; i++)
{
string picName = "imgres/" + String.Format("{0:D3}", i) + ".png";
BitmapImage bmp = new BitmapImage(new Uri(picName, UriKind.Relative));
DiscreteObjectKeyFrame dokf = new DiscreteObjectKeyFrame(bmp, KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(250)));
oauf.KeyFrames.Add(dokf);
}

//这里有很大的疑惑,这里对么
PropertyPath path = new PropertyPath("Image.Sourse");

Storyboard.SetTargetProperty(oauf, path);
Storyboard.SetTarget(oauf, img);

sb.Children.Add(oauf);
}


XAML代码:

<Image Stretch="None" Name="img"/>


有没有大佬帮我讲讲,别太高深,我是小白
...全文
514 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhierzhao2795 2017-02-14
  • 打赏
  • 举报
回复
网上有一个插件 搜索 WPF中如何显示Gif应该就有 参考一下这个
希希啊希希 2017-02-06
  • 打赏
  • 举报
回复
引用 2 楼 Libby1984 的回复:
没有运行你的代码,不过发现一个问题。FromTimeSpan 创建一个新的 KeyTime 实例,并且将 KeyTimeType 属性初始化为指定参数的值。 你所有的KeyTime值都是250,也就是说所有的图像都是在第250毫秒一次播放完。。。我想应该是250,500,750......吧
谢谢^ ^,可是下面的PropertyPath还是错的,事实上,我根本不知道耶不理解这个path是怎样的
exception92 2017-02-06
  • 打赏
  • 举报
回复
Image.Source 应该用括号阔起来(Image.Source)
  • 打赏
  • 举报
回复
没有运行你的代码,不过发现一个问题。FromTimeSpan 创建一个新的 KeyTime 实例,并且将 KeyTimeType 属性初始化为指定参数的值。 你所有的KeyTime值都是250,也就是说所有的图像都是在第250毫秒一次播放完。。。我想应该是250,500,750......吧
希希啊希希 2017-02-01
  • 打赏
  • 举报
回复
有没有大佬直接写一个给我参考,也行。听说定时器效果不如WPF的storyboard好。定时器的我会写。我想折腾折腾SB

8,731

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧