当前位置:网站首页>WPF personal summary on drawing
WPF personal summary on drawing
2020-11-07 20:58:00 【Irving the procedural ape】
The contents are all personal summaries .
If there is a mistake, please let me know , And forgive me a lot .
In general, the drawing is divided into two areas , One is shape , Second, pixel filling .
Shape is drawing rectangles , circular , Complex combination shapes .
Pixel filling, such as image filling , But more bitmap operations , It's also possible to draw shapes , However, the filling algorithm for the shape is relatively difficult , It needs to be calculated independently .
stay WPF in , Corresponding to divided into control drawing , Bitmap operation .
I don't repeat the simple drawing too much , Usually the general difficulty , It's complexity mapping , Large scale drawing, etc .
In general? , There is a plan for drawing with shapes
1 Direct overloading OnRender Method and use it inside DrawingContext Draw
2 Hijack host control , And create inheritance DrawingVisual Control , And use RenderOpen Method to draw
3 Use GDI+ Draw and match Bitmap After use DrawingContext After line drawing
Usually , Method 1, Maybe the range of use is too small , Method 3 The effect is good , But it doesn't work well when you zoom in .
So let's focus on the method 2
The method is simple to use , Mainly the method of drawing inside .
The best way is to use DrawGeometry.
But the problem is to submit the corresponding contents of multiple control drawings ? Or the interior is drawn multiple times after one submission ?
for instance , The rectangle I sent before , Using multiple submissions , Submit a small amount of drawing at a time , When a lot of content is drawn, it means a lot of submission , A lot of drawing , Although a single drawing is fast and basic 0.2 millisecond , But it doesn't hold up , That's what makes it stuck .
So the right way to do this is to have a small amount of .........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- C++在C的基础上改进了哪些细节
- Improvement of maintenance mode of laravel8 update
- graph generation model
- How to deal with data leakage and deletion related to business life and death?
- How to learn technology efficiently
- 在 Amazon SageMaker 管道模式下使用 Horovod 实现多 GPU 分布式训练
- Adobe Lightroom /Lr 2021软件安装包(附安装教程)
- Cpp(四) Boost安装及基本使用 for Mac
- 年薪90万程序员不如月入3800公务员?安稳与高收入,到底如何选择?
- The emergence and significance of micro service
猜你喜欢
Analysis of kubernetes service types: from concept to practice
What magic things can a line of Python code do?
use Xunit.DependencyInjection Transformation test project
【C++学习笔记】C++ 标准库 std::thread 的简单使用,一文搞定还不简单?
一万四千字分布式事务原理解析,全部掌握你还怕面试被问?
How to choose a good company
The emergence and significance of micro service
微服务的出现和意义的探索
团灭 LeetCode 股票买卖问题
How to learn technology efficiently
随机推荐
Insight -- the application of sanet in arbitrary style transfer
laravel8更新之维护模式改进
Code Review Best Practices
See once to understand, graphic single chain table inversion
sed之查找替换
How to deal with data leakage and deletion related to business life and death?
awk实现类sql的join操作
一万四千字分布式事务原理解析,全部掌握你还怕面试被问?
屏读时代,我们患上了注意力缺失候群症
团灭 LeetCode 股票买卖问题
Get started, GIT
数据库基本操作
Adobe Lightroom /Lr 2021软件安装包(附安装教程)
More than 50 object detection datasets from different industries
使用 Xunit.DependencyInjection 改造测试项目
虚拟DOM中给同一层级的元素设置固定且唯一的key为什么能提高性能
一次公交卡被“盗刷”事件带来的思考
Web Security (1) -- browser homology strategy
go wire 依赖注入入门
Don't treat exceptions as business logic, which you can't afford