c# 平分3段中间一段画重下到上的45度斜线,2段画直线
时间: 2024-10-19 11:07:26 浏览: 5
在C#中,你可以使用`System.Drawing.Graphics`类来绘制图形,这里我们假设你有一个`Rectangle`对象代表了这个3段区域。首先,你需要创建一个`Graphics`实例并确保在正确的上下文中(如窗口或图片等)。以下是如何分别绘制45度斜线和直线的示例:
```csharp
using System.Drawing;
using System.Drawing.Drawing2D;
// 假设你已经有了Rectangle region 和 Graphics g 对象
// 定义角度
private const double Degree45 = Math.PI / 4; // 45度
// 绘制45度斜线
void DrawDiagonalLine(Graphics g, Rectangle region)
{
Point start = new Point(region.Left + region.Width / 2, region.Top);
Point end = new Point(start.X, region.Bottom);
g.DrawLine(Pens.Black, start, end);
// 创建画刷用于旋转
var rotateBrush = new LinearGradientBrush(
new Rectangle(start, end),
Color.LightGray, // 上色
Color.DarkGray, // 下色
LinearGradientMode.Vertical);
// 设置画刷旋转
g.TranslateTransform(start.X, start.Y);
g.RotateTransform(-Degree45);
g.FillPath(rotateBrush, new PathGeometry() { Filled = true });
g.ResetTransform();
}
// 绘制两条水平直线
void DrawHorizontalLines(Graphics g, Rectangle region)
{
g.DrawLine(Pens.Black, region.Left, region.Top, region.Left, region.Bottom);
g.DrawLine(Pens.Black, region.Right, region.Top, region.Right, region.Bottom);
}
// 调用这两个方法
public void DrawSegments(Graphics g, Rectangle region)
{
DrawDiagonalLine(g, region);
DrawHorizontalLines(g, region);
}
```
阅读全文