首页 > 其他分享 >【WPF】绘制图形的三种方法及区别

【WPF】绘制图形的三种方法及区别

时间:2022-10-29 10:23:17浏览次数:46  
标签:继承 DrawingVisual System Drawing Windows Shape WPF 绘制 图形

  WPF中用于绘图的类主要有三个,分别是Shape类、Drawing类和DrawingVisual类,Shape类存在于System.Windows.Shapes命,而Drawing类和DrawingVisual类则都存在于 System.Windows.Media名字空间,下面简要介绍一下三个类的区别:
   1)Shape类: Shape继承自FrameworkElement,FrameworkElement继承自UIElement,包含在System.Windows.Shapes命名空间中,而WPF大部分控件均继承自System.Windows.Shapes类,因此,也可以将Shape及其继承类看成是特殊的图形控件,具有大多数控件通用的属性和事件,如果创建图元规模较小的程序,采用Shape应该是比较好的选择。Shape类派生情况如下:

 

 

  2)DrawingVisual类号称是WFP中最轻量级的绘图类,继承自ContainerVisual,ContainerVisual又继承自Visual(Visual有以下能力:输出显示、坐标变换、区域剪裁、命中测试、边框计算。),在 System.Windows.Media名字空间中,如果要编制涉及数千个图元的创建和编辑的应用程序,建议采用DrawingVisual类,但同时由于DrawingVisual不支持任何事件,若需要对图元进行编辑,最好编写继承自DrawingVisual自定义图元。DrawingVisual类没有派生对象,绘图是通过DrawingContext类进行的,DrawingContext类继承自System.Windows.Threading.DispatcherObject,属于比较基础的类,与WPF实现机制有较大关系,该类只有Dispatcher 1个属性,其他的都是方法,大部分以Draw开头,以下列出常用的几种方法:

 

   3)Drawing类:Drawing类继承自 Animatable,根源来自Freezable类,与Animation类有着千丝万缕的联系,与Shape类和DrawingVisual类根源均继承自Visual类存在较大区别,它的开销介于Shape类和DrawingVisual类之间,如果需要创建频繁修改的图元对象时,可以采用Drawing类。Drawing类派生类如下:

 

 以上三类的继承关系如下所示:

 

标签:继承,DrawingVisual,System,Drawing,Windows,Shape,WPF,绘制,图形
From: https://www.cnblogs.com/cdaniu/p/16838158.html

相关文章

  • 第5题:试设计一巴特沃斯低通滤波器,其处理的数据采样率为2Hz,允许0.6Hz以下的信号通过。
    首先对题目进行分析,采样率为2Hz,允许0.6Hz以下信号通过说明该滤波器的截止频率为0.6,也就是幅频增益下降3dB或者是最大幅频增益的0.707倍(对应的是根号2分之一)题目的意思应该......
  • wpf .net core win7 独立运行补丁安装记录
     Windows7系统上,根据dotnet官方文档,需要安装上KB2533623补丁方案如下:首先使用 fx2.0 写一个启动器 如果检测可以运行则拉起.net core 主程序 否则弹出命令......
  • Winform GDI 系列(2) 窗体边框重绘制
    ///<summary>///窗体边框重绘制///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidForm1_Paint(......
  • Winform 无边框 绘制自定义边框
    privatevoidFrmLogin_Paint(objectsender,PaintEventArgse){///自定义绘制边框颜色//e.Graphics.DrawRectangle(Pens.DarkOliveGr......
  • 使用python 绘制中国人口热气图
    使用pythonmatlib绘制热力图绘制世界地图点击查看代码importmatplotlib.pyplotaspltfrommpl_toolkits.basemapimportBasemapplt.figure(figsize=(16,8))m......
  • AN---绘制图形并上色
    我们在用AN绘图的时候,经常会遇到,绘制了图形但是上不了色的问题,下面就记录一下:首先在用【线条工具】绘制图形的时候,开启【对象绘制】:其次打开油漆桶工具:需要选择下面的【......
  • 如何用界面组件DevExpress WPF创建Excel式的过滤功能?赶紧Get
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专......
  • 【WPF】ToolBar工具栏菜单和命令
     ToolBar   对许多小的按钮(或者其他控件)进行分组。   ToolBar可以被放在元素树的任何地方,但是通常把它们放在一个叫作ToolBarTray的FrameworkElement中。  ......
  • Canvas基本绘制操作
    Canvas绘制线条中常见的属性和方法属性(方法)说明linwWidth定义线条的宽度,属性值为整数,默认是1,默认单位是pxlineCap定义线条开始和结尾处的线帽样式,属性值:butt(默认值,无线帽)......
  • 1-turtle基本元素绘制
    1-画线段结果代码importturtle#引入绘图库p=turtle.Pen()#示例画笔p.forward(200)#画长度为200的线段,默认水平向右turtle.done()#画布窗体不......