当前位置:网站首页>WPF 关于绘图个人总结
WPF 关于绘图个人总结
2020-11-07 20:58:00 【程序猿欧文】
内容均为个人总结。
如果错误请告知,并多多见谅。
总的来说绘图是分为两个范围,一是形状,二是像素填充。
形状也就是绘制矩形,圆形,复杂组合形状。
像素填充例如图像填充,但更多是位图操作,同样也是可以绘制形状,不过对于形状的填充算法相对很难,是需要独立进行计算。
在WPF中,对应着分为控件绘图,位图操作。
对于简单的绘图我也不多加复述,通常一般的难点,也就是复杂性绘图,大规模绘图等。
一般呢,对于有形状绘图有一下方案
1 直接重载OnRender方法并在内使用DrawingContext进行绘图
2 劫持承载控件,并创建继承DrawingVisual控件,并使用RenderOpen方法进行绘制
3 使用GDI+绘图并配合Bitmap后使用DrawingContext后经行绘图
通常,方法1,可能使用范围过小,方法3呢效果不错,但是放大后效果不好。
所以我们重点说一下方法2
使用方法很简单,主要是里面绘制的方法。
最好的办法就是使用DrawGeometry。
但是问题是是提交多个控件绘图对应内容呢? 还是提交一次后内部多次绘制呢?
举例来说,我之前发的矩形格子,使用的是多次提交,每次提交少量绘制,当绘制大量内容后意味大量提交,大量绘制,虽然单次绘图很快基本0.2毫秒,但架不住多啊,也就造成卡顿。
所以正确的方法应该是少量.........
版权声明
本文为[程序猿欧文]所创,转载请带上原文链接,感谢
https://my.oschina.net/mikeowen/blog/4707704
边栏推荐
- Kubernetes服务类型浅析:从概念到实践
- 在 Amazon SageMaker 管道模式下使用 Horovod 实现多 GPU 分布式训练
- 屏读时代,我们患上了注意力缺失候群症
- 模型预测准确率高达94%!利用机器学习完美解决2000亿美元库存难题
- Big data algorithm - bloon filter
- 高级并发编程系列九(Lock接口分析)
- Code Review最佳实践
- Advanced concurrent programming series 9 (lock interface analysis)
- 构造请求日志分析系统
- What is the relationship between low code vs model driven?
猜你喜欢
一万四千字分布式事务原理解析,全部掌握你还怕面试被问?
Ac86u KX Online
Annual salary of 900000 programmers is not as good as 3800 civil servants a month? How to choose between stability and high income?
高级并发编程系列九(Lock接口分析)
Web API系列(三)统一异常处理
大数据算法——布隆过滤器
编程界大佬教你:一行Python代码能做出哪些神奇的事情?
C language I blog assignment 03
你可能不知道的Animation动画技巧与细节
一次公交卡被“盜刷”事件帶來的思考
随机推荐
How Facebook open source framework simplifies pytorch experiment
利用线程通信、解决缓存穿透数据库雪崩
Web API series (3) unified exception handling
「混合云」会是云计算的下一个战场吗?
Annual salary of 900000 programmers is not as good as 3800 civil servants a month? How to choose between stability and high income?
[漫谈] 软件设计的目标和途径
某618大促项目的复盘总结
小熊派开发板实践:智慧路灯沙箱实验之真实设备接入
一万四千字分布式事务原理解析,全部掌握你还怕面试被问?
Business Facade 与 Business Rule
CPU瞒着内存竟干出这种事
How to choose a good company
Adobe media encoder /Me 2021软件安装包(附安装教程)
Web API系列(三)统一异常处理
Insight -- the application of sanet in arbitrary style transfer
awk实现类sql的join操作
sed之查找替换
计组-总线通信控制之异步串行通信的数据传输
What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?
使用 Xunit.DependencyInjection 改造测试项目