winform绘制font 显示字体系列 在指定位置 区域 位置垂直 绘制文本 brush pen
时间: 2024-02-14 17:05:38 浏览: 129
在 WinForms 中,你可以使用 `System.Drawing` 命名空间中的类来绘制文本、颜色和图形。下面是一个综合的示例:
1. 创建一个 Windows 窗体应用程序项目。
2. 在窗体上放置一个 `Panel` 控件。
3. 在窗体的代码中添加以下命名空间引用:
```csharp
using System.Drawing;
using System.Windows.Forms;
```
4. 在 `Panel` 控件的 `Paint` 事件中添加以下代码:
```csharp
private void panel1_Paint(object sender, PaintEventArgs e)
{
// 创建一个 Font 对象
Font font = new Font("Arial", 16, FontStyle.Bold);
// 创建一个 Brush 对象
Brush brush = new SolidBrush(Color.Red);
// 创建一个 Pen 对象
Pen pen = new Pen(Color.Blue, 2);
// 显示字体系列
FontFamily[] fontFamilies = FontFamily.Families;
string fontFamiliesStr = "";
foreach (FontFamily fontFamily in fontFamilies)
{
fontFamiliesStr += fontFamily.Name + ", ";
}
e.Graphics.DrawString(fontFamiliesStr, font, brush, new Point(10, 10));
// 在指定位置绘制文本
string text = "Hello, World!";
SizeF textSize = e.Graphics.MeasureString(text, font);
e.Graphics.DrawString(text, font, brush, new Point(50, 50));
// 在指定区域绘制文本
RectangleF textRect = new RectangleF(100, 100, 100, 100);
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.LineAlignment = StringAlignment.Center;
e.Graphics.DrawString(text, font, brush, textRect, format);
// 垂直绘制文本
string verticalText = "Vertical Text";
int x = 200;
int y = 200;
e.Graphics.TranslateTransform(x, y);
e.Graphics.RotateTransform(-90);
e.Graphics.DrawString(verticalText, font, brush, new PointF(0, 0));
e.Graphics.ResetTransform();
// 绘制矩形
e.Graphics.DrawRectangle(pen, new Rectangle(300, 50, 100, 100));
// 释放对象
font.Dispose();
brush.Dispose();
pen.Dispose();
}
```
这段代码会在 `Panel` 控件中绘制一个字体系列列表、一个在指定位置的文本、一个在指定区域的文本、一个垂直的文本和一个蓝色边框的矩形。你可以根据需要创建不同的文本、颜色和图形对象,并使用 `DrawString`、`DrawRectangle` 等方法来进行绘制。在绘制完成后,要记得释放对象,以避免资源泄漏。
在绘制文本时,你可以使用 `MeasureString` 方法来测量文本的大小,以便将文本放置在正确的位置。你还可以使用 `StringFormat` 对象来设置文本的对齐方式和换行方式。在绘制垂直文本时,你需要使用 `TranslateTransform` 和 `RotateTransform` 方法来旋转绘图平面。
阅读全文