c# Graphics使用方法(画圆写字代码)

C# Graphics使用方法(画圆写字代码)

在C#中,我们可以使用System.Drawing命名空间下的Graphics类来实现绘图功能,包括画笔、画刷、线条、形状等等。本篇攻略主要介绍如何使用Graphics类绘制圆和写字的相关代码。

创建 Graphics 对象

要使用Graphics类进行绘图,首先要创建Graphics对象。我们可以通过两种方式来创建:

  1. 在控件上绘图:在控件的Paint事件中,使用e.Graphics创建Graphics对象;
  2. 在非控件上绘图:创建Bitmap对象,然后使用Graphics.FromImage方法从Bitmap对象中创建Graphics对象。

以下示例代码演示了如何在控件上绘制圆:

private void panel1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;    // 创建 Graphics 对象
    Pen pen = new Pen(Color.Red);    // 创建 Pen 对象,并设置颜色

    g.DrawEllipse(pen, 50, 50, 100, 100);    //绘制圆形
}

绘制圆

绘制圆形需要使用Graphics类的DrawEllipse方法,该方法的参数包括画笔、x坐标、y坐标、宽度和高度。

以下示例代码演示了如何在控件上绘制两个圆:

private void panel1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;    // 创建 Graphics 对象
    Pen pen1 = new Pen(Color.Red);    // 创建 Pen 对象,并设置颜色
    Pen pen2 = new Pen(Color.Blue, 2);    // 创建 Pen 对象,并设置颜色和粗细

    // 绘制红色圆形
    g.DrawEllipse(pen1, 50, 50, 100, 100);

    // 绘制蓝色圆形
    g.DrawEllipse(pen2, 100, 100, 150, 150);
}

写字

绘制文本需要使用Graphics类的DrawString方法,该方法的参数包括文本内容、字体、画刷和x、y坐标。

以下示例代码演示了如何在控件上写字:

private void panel1_Paint(object sender, PaintEventArgs e)
{
    Graphics g = e.Graphics;    // 创建 Graphics 对象
    Font font = new Font("宋体", 20);    // 创建 Font 对象,并设置字体大小
    SolidBrush brush = new SolidBrush(Color.Black);    // 创建 SolidBrush 对象,并设置颜色

    // 写字
    g.DrawString("Hello, World!", font, brush, 50, 50);
}

以上示例代码演示了如何在控件上绘制圆和写字的相关代码,使用Graphics类可以实现更加丰富的绘图功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c# Graphics使用方法(画圆写字代码) - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#中的分布式ID生成组件IDGen介绍并给出示例代码

    C#中的IDGen是一个C#实现的Twitter Snowflake算法的ID生成器,可以生成全局唯一的ID,支持高并发场景下的ID生成。在本篇文章中,我们将介绍IDGen的使用方法并提供相关的C#示例代码。 IDGen的介绍 IDGen是一款开源的分布式唯一ID生成器,支持多种ID生成算法,并且可以在高并发场景下快速生成全局唯一的ID。目前支持的ID生成算…

    C# 2023年4月22日
    00
  • C#实现只运行单个实例应用程序的方法(使用VB.Net的IsSingleInstance)

    实现只运行单个实例应用程序的方法,在C#中可以通过使用Mutex实现。Mutex是一种用于互斥访问共享资源的同步基元。在应用程序的运行过程中,只允许存在一个互斥体。如果进程试图创建同名的互斥体,则只能打开已存在的同名互斥体,而不是创建一个新的互斥体。 下面是实现只运行单个实例应用程序的方法的代码片段: using System.Threading; // 定…

    C# 2023年6月3日
    00
  • C# SendKeys使用方法介绍

    C#中的SendKeys提供了一种模拟按键的方法。它可以被用于许多场合,例如在自动化测试中,或者模拟用户输入等方面。下面是该方法的使用方法介绍: SendKeys方法 public static void SendKeys(string keys); SendKeys方法可以将一系列符号或字符串发送到当前活动窗口。 参数 keys:要发送的符号或字符串。 示…

    C# 2023年6月7日
    00
  • PowerShell中使用.NET将程序集加入全局程序集缓存

    在PowerShell中使用.NET将程序集加入全局程序集缓存,首先需要使用Add-Type -AssemblyName命令加载程序集,然后使用[System.Reflection.Assembly]::Load()方法将加载的程序集添加至全局程序集缓存中。 以下是完整的步骤: 使用Add-Type -AssemblyName命令加载程序集 Add-Type…

    C# 2023年6月3日
    00
  • Unity3D基于陀螺仪实现VR相机功能

    Unity3D基于陀螺仪实现VR相机功能 – 完整攻略 在Unity3D引擎中,使用陀螺仪可以非常方便地实现VR相机功能,这样可以让我们更好地体验VR游戏或应用。 步骤一:创建一个空项目 在Unity3D中创建一个新项目,选择3D项目。如果你已经有现成的项目,可以直接打开该项目。 步骤二:安装VR支持 在Unity3D中,可以使用VR支持使应用程序支持VR。…

    C# 2023年6月3日
    00
  • C#递归方法实现无限级分类显示效果实例

    下面是我对于“C#递归方法实现无限级分类显示效果实例”的完整攻略。首先,我们需要明确以下几点: 无限级分类是指,商品分类、地区、部门等数据按照父子关系无限嵌套的数据结构。 递归是指,在函数中调用函数本身的行为。 在使用递归实现无限级分类时,需要注意防止出现“死循环”。 接下来,我们按照以下步骤来实现无限级分类显示效果: 创建商品分类实体类,包含分类ID、分类…

    C# 2023年6月1日
    00
  • FileShare枚举的使用小结(文件读写锁)

    下面是关于FileShare枚举的使用小结(文件读写锁)的完整攻略: 1. FileShare枚举概述 FileShare枚举用于指定在打开文件时是否允许其他进程对该文件的访问。例如,当一个进程尝试打开一个文件时,如果该文件被另一个进程独占打开,则会发生访问冲突。 FileShare枚举提供了一种更细粒度的文件读写锁,可以根据不同的需求指定不同的文件访问权限…

    C# 2023年5月14日
    00
  • C#实现判断操作系统是否为Win8以上版本

    要实现判断操作系统是否为Windows 8及以上版本,可以用C#语言编写以下代码: using System; using System.Runtime.InteropServices; class OperatingSystemUtils { [DllImport("kernel32.dll")] static extern bool …

    C# 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部