c# 画刻度尺(支持缩放)
// 画标尺
private void DrawRule(double scale)//scale缩放的倍数
{
if (cvRuler.Children != null)
{
cvRuler.Children.Clear();
}
System.Windows.Shapes.Line _line;
TextBlock _textBlock;
const double _minPixel = 30;
string _unit = "mm";
double _scientificF;
int _scientificE;
string[] _strTemp = (_minPixel / 1).ToString("E").Split('E');
double.TryParse(_strTemp[0], out _scientificF);
int.TryParse(_strTemp[1], out _scientificE);
if (_scientificE >= 2 || (_scientificE >= 1 && _scientificF >= 5))
{
_unit = "m";
_scientificE -= 3;
}
_textBlock = new TextBlock();
_textBlock.Text = _unit;
_textBlock.FontSize = 8;
_textBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
_textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Top;
_textBlock.Margin = new Thickness(10, 0, 0, 0);
cvRuler.Children.Add(_textBlock);
int _lineIndex = 0;
//double _width = cvRuler.ActualWidth - 0;
double _width = grid_Loy.ActualWidth - 0;
if (4000 * scale > grid_main.ActualWidth)
{
_width = 4000 * scale;
}
DPI dpi = new DPI();
float dpi_x = dpi.Dpi_x;
double mm = _width / dpi_x * 25.4;
//_width = mm;
double mmTopx = 1 * dpi_x / 25.4 * scale;
if (scale < 1)//缩放<100%
{
mmTopx = 10 * mmTopx;
}
for (double i = 0; i < _width; i += mmTopx)
{
_line = new System.Windows.Shapes.Line();
if (_lineIndex % 10 == 0)
{
_line.Stroke = Brushes.Black;
_line.StrokeThickness = 1;
_line.X1 = i;
_line.Y1 = 0;
_line.X2 = i;
_line.Y2 = 20;
_line.VerticalAlignment = VerticalAlignment.Bottom;
_textBlock = new TextBlock();
_textBlock.Text = _lineIndex.ToString();
if (scale < 1)
{
_textBlock.Text = (_lineIndex*10).ToString();
}
_textBlock.FontSize = 8;
_textBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
_textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Top;
_textBlock.Margin = new Thickness(i, 0, 0, 0);
_textBlock.Foreground = Brushes.Black;
cvRuler.Children.Add(_textBlock);
}
else if (_lineIndex % 5 == 0)
{
_line.Stroke = Brushes.Black;
_line.StrokeThickness = 1;
_line.X1 = i;
_line.Y1 = 0;
_line.X2 = i;
_line.Y2 = 10;
_line.VerticalAlignment = VerticalAlignment.Bottom;
if (scale < 1)
{
_textBlock = new TextBlock();
_textBlock.Text = (_lineIndex * 10).ToString();
_textBlock.FontSize = 8;
_textBlock.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
_textBlock.VerticalAlignment = System.Windows.VerticalAlignment.Top;
_textBlock.Margin = new Thickness(i, 0, 0, 0);
_textBlock.Foreground = Brushes.Black;
cvRuler.Children.Add(_textBlock);
}
}
else
{
_line.Stroke = Brushes.DimGray;
_line.StrokeThickness = 1;
_line.X1 = i;
_line.Y1 = 0;
_line.X2 = i;
_line.Y2 = 5;
_line.VerticalAlignment = VerticalAlignment.Bottom;
}
cvRuler.Children.Add(_line);
_lineIndex++;
}
}
转载于:https://www.cnblogs.com/xunyiHe/p/9957412.html
c# 画刻度尺(支持缩放)相关推荐
- 前端 HTML5 Svg 画板(支持视频、图片上涂鸦,支持缩放、修改、颜色、复选...)
GitHub 地址 支持 视频.图片 上涂鸦,做标记 画板功能支持 矩形.圆形.椭圆.箭头.直线.文本,支持 缩放.修改.调整字号颜色.移动位置....,画板数据支持上传保存,后续传入重新复原. 画板 ...
- Android怎么隐藏前端,Android-Webview支持缩放并掩藏讨厌的缩放控制条
转载请标明出处: http://blog.csdn.net/hanhailong726188/article/details/46717621 本文出自[海龙的博客] 之前转载过Android web ...
- Android webView 支持缩放及自适应屏幕
1 //支持javascript 2 web.getSettings().setJavaScriptEnabled(true); 3 // 设置可以支持缩放 4 web.getSettings().s ...
- [Swift通天遁地]九、拔剑吧-(9)创建支持缩放、移动、裁切的相机视图控制器
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- Android中使用WebView加载本地html并支持运行JS代码和支持缩放
场景 Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/art ...
- Android实现支持缩放平移图片
本文主要用到了以下知识点 Matrix GestureDetector 能够捕捉到长按.双击 ScaleGestureDetector 用于检测缩放的手势 自由的缩放 需求:当图片加载时,将图片在屏幕 ...
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图 ...
- H5头像完整制作,可拖拽缩放,可添加装饰图标(装饰图标支持缩放、旋转、拖拽)
H5头像制作类的程序本以为到处都可以搜索到,可是真写这个项目的时候才发现太困难了,因为根本没有现成的功能模块可以拼凑,着实费了不少力气,好在最终圆满交工. 还是先看效果 源码获取渠道 小程序内联系客服 ...
- base64图裁剪 php_php图片上传类(支持缩放、裁剪、图片缩略功能)
namespace dollarphp; /** * @desc:图片上传类 * @author [Lee] ]> * 1.自动验证文件是表单提交的文件还是base64流提交的文件 * 2.验证 ...
- 类似微信,微博,QQ的头像截图功能, 图片支持缩放
类似微信,微博,QQ的头像截图功能, 图片支持缩放, 不多说了, 直接上源码! http://pan.baidu.com/s/1gdJxb03
最新文章
- 【项目实战】多场景下的图表可视化表达
- CodeReview学习与总结
- 计算机网络按信息传输介质的性能来划分,大学计算机基础练习题网络技术.doc...
- Zookeeper(一)——简介
- Python机器学习:逻辑回归001什么是逻辑回归
- 创科视觉软件说明书_【拓斯达 | GGII】20192023年中国机器视觉行业调研
- 篇章级关系抽取(Doc-RE)论文列表整理
- 最清楚的01背包问题讲解
- 深度学习中的9种归一化方法概述
- java nutch 爬虫_Java分布式爬虫Nutch教程——导入Nutch工程,执行完整爬取
- arccos用计算机,arccos0(arccos在线计算器)
- 一个简单文本分类任务-EM算法-R语言
- 普通带条件查询接口报错 Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError:
- 【Unity3D插件】UniRx(基于Unity的响应式编程框架)插件学习
- 全国电费优惠充值接口源码
- 艾兰岛编辑器-全局存储
- XenDesktop 连接数据库报错
- Reaveal + iPhone(越狱)分析第三方app的UI视图结构
- deepin更换图标
- linux内核如何安装vim,linux软件安装以及vim