有没有大佬知道WPF里面,如何实现:以双缓冲的方式展示图像?

快乐的肉球 2018-04-18 04:52:01
在项目中有一个需求,就是大图的无缝轮播。
环境是,每张图大概是1M~2M左右的。

我尝试过许多方法:
1.先压缩;
2.使用Graphic去在一个Image上绘制,实现无缝移动;也尝试过使用canvas加载Image控件去移动;

但是两种方法都在移动中会出现轻微的卡顿。
见过用Unity 3D实现的轮播,完全没有卡顿。请问有没有大佬知道如何提升图片轮播的播放效果流畅度~

代码什么的也不求了,给个思路就行了。谢谢各位了~

...全文
1424 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐的肉球 2018-04-21
  • 打赏
  • 举报
回复
引用 9 楼 summergo123321 的回复:
我把三间互通的房屋的3D模型带家具导入到WPF,比你的图片大多了,在模型里移3D摄像像头,都没发现卡顿,你说一个2M图片在Canvas下会卡顿,我都不信,你可能代码有问题,在重复加载资源。。。
嗯,如果向您说的话,很有可能是代码的问题。那造成卡顿的技术点我个人猜测是图片轮播时候新控件的添加会导致上层控件重新计算。所以您能说下您实现类似方案使用的主要帮助类是哪一个呢? Animation还是什么?
快乐的肉球 2018-04-21
  • 打赏
  • 举报
回复
引用 10 楼 kihkia 的回复:
-- 这两天也在弄播放图片 ,在网上找了个例子 ,很奈斯 ,楼主需要的话可以发给你看看
谢谢你的例子,不过你这个我看过,这个还是基于winForm的方法。
mk_lucifer 2018-04-19
  • 打赏
  • 举报
回复
我把三间互通的房屋的3D模型带家具导入到WPF,比你的图片大多了,在模型里移3D摄像像头,都没发现卡顿,你说一个2M图片在Canvas下会卡顿,我都不信,你可能代码有问题,在重复加载资源。。。
mk_lucifer 2018-04-19
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
Graphic.DrawImage 就可以的
他说的可是WPF,WPF下并没有Graphic,楼主都把我说蒙了。。。
mk_lucifer 2018-04-19
  • 打赏
  • 举报
回复
WPF里就没这个东西,这是GDI+特有的一种技术,早就过时了。。。
xuzuning 2018-04-19
  • 打赏
  • 举报
回复
噢,你是 WPF。算我没说
xuzuning 2018-04-19
  • 打赏
  • 举报
回复
Graphic.DrawImage 就可以的
快乐的肉球 2018-04-19
  • 打赏
  • 举报
回复
引用 3 楼 desperaso 的回复:
要是wpf不给力,用SharpDX https://github.com/search?l=C%23&q=SharpDX&type=Repositories
谢谢,这块之前没有接触,只能多试试了。谢谢,我先研习下这个~
  • 打赏
  • 举报
回复


--
这两天也在弄播放图片 ,在网上找了个例子 ,很奈斯 ,楼主需要的话可以发给你看看
desperaso 2018-04-18
  • 打赏
  • 举报
回复
要是wpf不给力,用SharpDX https://github.com/search?l=C%23&q=SharpDX&type=Repositories
desperaso 2018-04-18
  • 打赏
  • 举报
回复
wpf不是是基于directx的么?directx有双缓冲么,不是GPU和显存?
快乐的肉球 2018-04-18
  • 打赏
  • 举报
回复
双缓冲的方式没有尝试,原理上肯定会性能提升的,但是不太会写。 我看Unity3D实现的原理是所有图全部加载到一排,然后移动相机的。但我认为上层的方式是其次的,底层肯定也是使用了双缓冲,望大佬给个指点~
在Windows系统中,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS中的经典DEMO中,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目中,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大中型WPF项目中必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程中,赵老师带领你在WPF中,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手中“复活”。在课程中,赵老师会详细讲解WPF和MVVM中的各种技巧,让你从此爱上WPF+MVVM编程。

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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