当前位置:网站首页>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
边栏推荐
- graph generation model
- How to deal with data leakage and deletion related to business life and death?
- 不懂数据库索引的底层原理?那是因为你心里没点b树
- [original] the influence of arm platform memory and cache on the real-time performance of xenomai
- go wire 依赖注入入门
- 全网最硬核讲解计算机启动流程
- Code Review最佳实践
- 当 TiDB 与 Flink 相结合:高效、易用的实时数仓
- There's not much time left for Kwai Chung.
- 分享几个我日常使用的VS Code插件
猜你喜欢
The JS solution cannot be executed after Ajax loads HTML
The official 1909 version of win10 cannot open the real-time protection solution of virus and threat protection in windows security center.
一次公交卡被“盜刷”事件帶來的思考
Using thread communication to solve the problem of cache penetrating database avalanche
What should be considered in the promotion plan outside the station?
深入web workers (上)
一文详解微服务架构
微服务的出现和意义的探索
在pandas中使用pipe()提升代码可读性
Didi's distributed ID generator (tinyid), easy to use
随机推荐
awk实现类sql的join操作
ECMAScript7规范中的instanceof操作符
Bgfx compilation tutorial
Win10官方1909版本无法打开windows安全中心中病毒和威胁防护的实时保护解决方案。
go wire 依赖注入入门
不懂数据库索引的底层原理?那是因为你心里没点b树
屏读时代,我们患上了注意力缺失候群症
In the age of screen reading, we suffer from attention deficit syndrome
What kind of technical ability should a programmer who has worked for 1-3 years? How to improve?
栈-括号的匹配
[C + + learning notes] how about the simple use of the C + + standard library STD:: thread?
聊一聊数据库中的锁
C language I blog assignment 03
bgfx编译教程
AC86U kx上网
static+代码块+多态+异常
What magic things can a line of Python code do?
When tidb and Flink are combined: efficient and easy to use real-time data warehouse
年薪90万程序员不如月入3800公务员?安稳与高收入,到底如何选择?
利用线程通信、解决缓存穿透数据库雪崩