【愚公系列】2023年11月 GDI+绘图专题 Font

举报
愚公搬代码 发表于 2023/11/29 22:43:59 2023/11/29
【摘要】 🏆 作者简介,愚公搬代码🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物...

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

🚀前言

在WinForm中,Font是用于控件中显示文本的字体。它是一个封装了字体族、字号、字体样式的类。

Font类提供了以下属性:

  1. FontFamily:字体族名称;
  2. Size:字体大小;
  3. Style:字体样式(粗体、斜体等);
  4. Unit:字体大小单位。

Font类还有一些方法,其中最常用的是ToString()方法,用于将Font对象转换为字符串表示。

在WinForm中,可以通过设置控件的Font属性来改变其字体,例如:

label1.Font = new Font("Microsoft Sans Serif", 12, FontStyle.Bold);

这将把label1控件的字体设为“Microsoft Sans Serif”字体,大小为12,粗体。

🚀一、font

🔎1.FontStyle

FontStyle是WinForms中用于定义文本字体风格的枚举。它允许您指定字体的样式,例如粗体、斜体、下划线等。以下是FontStyle的一些常用成员以及一个示例:

FontStyle的常用成员:

  • Regular:普通字体,没有额外样式。
  • Bold:粗体。
  • Italic:斜体。
  • Underline:下划线。
  • Strikeout:删除线。

示例代码:

using System;
using System.Drawing;
using System.Windows.Forms;

public class FontStyleExample : Form
{
    public FontStyleExample()
    {
        Text = "FontStyle Example";
        Size = new Size(400, 200);
        Paint += new PaintEventHandler(OnPaint);
    }

    private void OnPaint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        
        // 创建一个字体对象,指定字体名称、字号和风格
        Font regularFont = new Font("Arial", 14, FontStyle.Regular);
        Font boldFont = new Font("Arial", 14, FontStyle.Bold);
        Font italicFont = new Font("Arial", 14, FontStyle.Italic);
        Font underlineFont = new Font("Arial", 14, FontStyle.Underline);
        Font strikeoutFont = new Font("Arial", 14, FontStyle.Strikeout);

        // 绘制不同风格的文本
        g.DrawString("Regular Font", regularFont, Brushes.Black, 50, 50);
        g.DrawString("Bold Font", boldFont, Brushes.Black, 50, 70);
        g.DrawString("Italic Font", italicFont, Brushes.Black, 50, 90);
        g.DrawString("Underline Font", underlineFont, Brushes.Black, 50, 110);
        g.DrawString("Strikeout Font", strikeoutFont, Brushes.Black, 50, 130);

        // 释放资源
        regularFont.Dispose();
        boldFont.Dispose();
        italicFont.Dispose();
        underlineFont.Dispose();
        strikeoutFont.Dispose();
    }

    public static void Main()
    {
        Application.Run(new FontStyleExample());
    }
}

在这里插入图片描述

上面的示例创建了一个窗体,并在窗体上绘制了使用不同字体风格的文本。您可以根据需要选择适合您应用程序的字体风格,以创建不同的文本效果。 Font和FontStyle通常用于控制文本的外观。

🔎2.FontFamily

FontFamily是WinForms中用于表示字体系列的类。它允许您选择在应用程序中使用的字体系列,从而控制文本的外观。字体系列通常包括多种字体,如常规、粗体、斜体等。以下是FontFamily的简要介绍和一个示例:

FontFamily的主要属性和构造函数:

  • Name:获取字体系列的名称。
  • GenericSansSerifGenericSerifGenericMonospace等静态属性:表示常见的字体系列,例如无衬线字体、衬线字体、等宽字体等。

示例代码:

using System;
using System.Drawing;
using System.Windows.Forms;

public class FontFamilyExample : Form
{
    public FontFamilyExample()
    {
        Text = "FontFamily Example";
        Size = new Size(400, 200);
        Paint += new PaintEventHandler(OnPaint);
    }

    private void OnPaint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        
        // 创建一个字体系列对象,指定字体名称
        FontFamily fontFamily = new FontFamily("Arial");

        // 创建不同样式的字体
        Font regularFont = new Font(fontFamily, 14, FontStyle.Regular);
        Font boldFont = new Font(fontFamily, 14, FontStyle.Bold);
        Font italicFont = new Font(fontFamily, 14, FontStyle.Italic);

        // 绘制不同样式的文本
        g.DrawString("Regular Font", regularFont, Brushes.Black, 50, 50);
        g.DrawString("Bold Font", boldFont, Brushes.Black, 50, 70);
        g.DrawString("Italic Font", italicFont, Brushes.Black, 50, 90);

        // 释放资源
        regularFont.Dispose();
        boldFont.Dispose();
        italicFont.Dispose();
    }

    public static void Main()
    {
        Application.Run(new FontFamilyExample());
    }
}

在这里插入图片描述

上面的示例创建了一个窗体,并在窗体上绘制了使用不同字体样式的文本,所有字体都来自"Arial"字体系列。您可以根据需要选择不同的字体系列,以创建应用程序中所需的文本外观。 FontFamily通常用于指定文本所使用的字体。

🔎3.GraphicsUnit

在WinForms中,GraphicsUnit是一个枚举类型,用于指定测量文本和图形的单位。GraphicsUnit允许您在不同的度量单位之间进行转换,以确保在不同的设备和分辨率下绘制的文本和图形保持一致。以下是GraphicsUnit的主要成员以及一个示例:

GraphicsUnit的主要成员:

  • Display:表示以屏幕的像素为单位的度量。
  • Document:表示以打印文档的1/300英寸为单位的度量。
  • Inch:表示以英寸为单位的度量。
  • Millimeter:表示以毫米为单位的度量。
  • Pixel:表示以像素为单位的度量。
  • Point:表示以点为单位的度量。

示例代码:

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

public class GraphicsUnitExample : Form
{
    public GraphicsUnitExample()
    {
        Text = "GraphicsUnit Example";
        Size = new Size(400, 200);
        Paint += new PaintEventHandler(OnPaint);
    }

    private void OnPaint(object sender, PaintEventArgs e)
    {
        Graphics g = e.Graphics;
        
        // 创建一个字体对象,指定字体名称、字号和单位
        Font font = new Font("Arial", 24, GraphicsUnit.Point);

        // 创建一个矩形,指定单位为英寸
        RectangleF rectInches = new RectangleF(1, 1, 2, 1);
        g.DrawString("2 Inches", font, Brushes.Black, rectInches);

        // 将矩形的单位转换为毫米
        rectInches = ConvertUnits(rectInches, GraphicsUnit.Inch, GraphicsUnit.Millimeter);
        g.DrawString("50.8 mm", font, Brushes.Black, rectInches);

        // 释放资源
        font.Dispose();
    }

    // 将矩形的单位从sourceUnit转换为destinationUnit
    private RectangleF ConvertUnits(RectangleF rect, GraphicsUnit sourceUnit, GraphicsUnit destinationUnit)
    {
        rect.X = (float)GraphicsUnitConverter.Convert(rect.X, sourceUnit, destinationUnit);
        rect.Y = (float)GraphicsUnitConverter.Convert(rect.Y, sourceUnit, destinationUnit);
        rect.Width = (float)GraphicsUnitConverter.Convert(rect.Width, sourceUnit, destinationUnit);
        rect.Height = (float)GraphicsUnitConverter.Convert(rect.Height, sourceUnit, destinationUnit);
        return rect;
    }

    public static void Main()
    {
        Application.Run(new GraphicsUnitExample());
    }
}

在这里插入图片描述

上面的示例创建了一个窗体,并在窗体上绘制了两个矩形,分别使用不同的单位来指定它们的大小。第一个矩形使用英寸作为单位,第二个矩形使用毫米作为单位。通过使用GraphicsUnit和ConvertUnits方法,您可以在不同单位之间进行转换,以确保文本和图形在不同环境下显示一致。


🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

![在这里插入图片描述](https://img-blog.csdnimg.cn/e06a317e89694a23ad89d2c59538c3a1.jpeg#pic_center =450x300)

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。