• “熊猫视图”.Net图形控件功能介绍 [十二]:图像图元


    “熊猫视图”.Net图形控件功能介绍 [十三]:图元操作


    “熊猫视图”控件允许加载和显示图像资源,支持常用的图像格式,使用代码如下:

    1. //定义图像对象
    2. PandaView.Picture p = new PandaView.Picture();
    3. //图像位置
    4. p.Points = new[] { new PointF(400, 400) };
    5. //是否跟随视图缩放
    6. p.AllowZoom = true;
    7. //是否固定尺寸
    8. p.FixSize = true;
    9. //是否显示边框
    10. p.Edge = true;
    11. //边框颜色
    12. p.EdgePen = Pens.Blue;
    13. //图像源
    14. p.Image = Image.FromFile(@"d:\演示图\1.jpg");
    15. //建立图像对象
    16. p.Creat(pandaView1);

    运行效果如下: 

    当设置 AllowZoom属性为false, 并且把左上角的文字对齐图像左上角时,当视图缩放时图像大小保持不变,通常用于图像标注用途。效果如下:

    属性 FixSize 用于设置图像显示时尺寸是否使用自身大小,还是使用用户指定的大小。此属性设置为false时,将使用用户传入的第2个点位值,即右下角位置。修改位置参数为

    1. //图像位置
    2. p.Points = new[] { new PointF(400, 400), new PointF(600, 600) };
    3. //是否跟随视图缩放
    4. p.AllowZoom = true;

    即图像左上角定位在(400,400),右下角定位在(600,600),显示尺寸为200x200像素。

    演示效果如下: 

    除了在代码中加载图片,“熊猫视图”控件还支持从资源管理器中鼠标拖拽加载图片的功能。

    1. //启用拖拽
    2. pandaView1.AllowDrop = true;

    演示效果如下:

     在鼠标拖拽事件过程中,“熊猫视图”控件提供了两个用户事件,分别是定制拖拽时的图片边框样式,和拖拽后的图像边框样式。

    如下代码演示上述两个定制功能:

    1、定制拖拽图片时的边框样式为金色虚线粗边框

    2、定制拖拽图片后的边框样式为红色虚线粗边框

    1. //定制鼠标拖拽时图像边框
    2. private void pandaView1_DragPictureOver(object sender, PandaView.DragPictureOverEventArgs e)
    3. {
    4. //获取边框绘制画笔
    5. Pen p = e.Pen;
    6. //定义边框颜色为金色
    7. p.Color = Color.Gold;
    8. //定义边框宽度为5
    9. p.Width = 5;
    10. //定义边框样式为虚线
    11. p.DashStyle = DashStyle.Dot;
    12. }
    13. //定制鼠标释放时图像边框
    14. private void pandaView1_DragPicture(object sender, PandaView.DragPictureEventArgs e)
    15. {
    16. PandaView.Picture p = e.DragPicture[0];
    17. //显示边框
    18. p.Edge = true;
    19. //定义边框颜色为红色
    20. p.EdgePen.Color = Color.Red;
    21. //定义边框宽度为5
    22. p.EdgePen.Width = 5;
    23. //定义边框样式为虚线
    24. p.EdgePen.DashStyle = DashStyle.Dot;
    25. }

     运行效果如下:

    自由定制功能是本控件设计宗旨之一。

  • 相关阅读:
    公路施工机械技术突破和创新后的实施影响
    Linux性能优化--补充
    【ArcGIS Pro二次开发】(30):数据定义语言DDL详解
    Kitex踩坑 [Error] KITEX: processing request error,i/o timeout
    使用BeanShell写入内容到文件【JMeter】
    科技创意赋能乡村文旅振兴
    IDEA工具第二篇:自定义Java方法注释模板
    AI绘画初体验(6pen平台)
    Python【多分支实际应用的练习】
    基于SSM+MySQL的校园共享单车管理系统
  • 原文地址:https://blog.csdn.net/mosangbike/article/details/126771523