能写一些特定外观的控件,是一个做界面开发的程序员的基础技能。基本上,不管你是做web,QT,MFC,Winform,WPF等等,如果自己看到一个比较好看的有趣的效果,能大致推断出它的实现方式并照猫画虎做一个自己的控件,还是一件有趣且能提升自己的事

今天实现一个公章

当看任何一个效果时,先揣测一下的实现思路。这个过程很重要, 看到这个公章,其实就3个部分,外部大圆,中间五角星,绕着圆内环的文字。

基本上只要你大致的学过wpf.大圆肯定时没问题的。用一个Ellipse 来画就行了。

五角星,看看书基本上也没问题,都会告诉你用path 来绘制。或者用polyline polygin 都可

关键还是文字。其实我一开始也没想到这个绕这圆圈的文字怎么实现。 这种灵光就像变魔术一样,不知道前很高深,知道了后就时很简单的一个东西了。

我始终在想怎么把一个 label 或者TextBlock 掰弯那。

这里就不得不再感慨一下,技术这个东西,有的时候正面客、克服它要花很大的精力,但是绕过它确实很简单的。不要一根筋

如果我把一个字作为一个Label。 放在圆的12点位置,让它做旋转变形。

是不是瞬间就明白了

接下来就是封装出一个好用的控件吧,无非就是在cs代码中,根据要显示的内容,生成多个label,每个label显示一个字,且计算它的旋转角度

具体源码见https://gitee.com/csszbb/wpfnet5

最新文章

  1. 三国魂破解1——resmask.swf
  2. CentOS minimal网络设置
  3. Spring源码阅读系列总结
  4. C# 正则分组捕获
  5. FFmpeg-20160413-snapshot-bin
  6. 如何用Fiddler对Android应用进行抓包
  7. 传统的Ado.net 参数设置:params SqlParameter[] commandParameters
  8. JavaScript 同源策略
  9. SCOI2010 and SXOI2014 股票交易(DP)
  10. DES原理与实现
  11. 关于在arm裸板编程时使用printf问题的解决方法
  12. 文章标题 Oracle数据库中dual表使用
  13. 2018-2019-2 20165314《网络对抗技术》Exp1 PC平台逆向破解
  14. redis缓存中间件基础
  15. [转] vi/vim命令模式和编辑模式各种操作
  16. vue的环境配置
  17. LeetCode OJ 129. Sum Root to Leaf Numbers
  18. Linux驱动之poll机制的理解与简单使用
  19. FFmpeg:视频转码、剪切、合并、播放速调整
  20. QT和JS的互相调用例子

热门文章

  1. CTF-Streamgame2-writeup
  2. python远程备份mysql并压缩
  3. flex布局制作自适应网页
  4. 三分钟掌握共享内存 & Actor并发模型
  5. 手把手0基础Centos下安装与部署paddleOcr 教程
  6. [010] - JavaSE面试题(十):集合之Map
  7. 配置软ISCSI存储
  8. Tbase读写分离与分库分表
  9. yaml 文件解析
  10. Vulnhub -- DC1靶机渗透