在VS窗体中用c#画温度计
在 Visual Studio 中使用 C# 在 Windows 窗体应用程序中绘制温度计,可以通过以下步骤实现:
1. 创建新的 Windows 窗体应用程序
- 打开 Visual Studio。
- 选择 “创建新项目”。
- 选择 “Windows 窗体应用 (.NET Framework)” 或 “Windows Forms App (.NET Core)”,然后点击 “下一步”。
- 输入项目名称和位置,点击 “创建”。
2. 设计窗体
- 打开 “设计视图”。
- 从工具箱中拖放一个 “Panel” 控件到窗体上,这将用作绘制温度计的画布。
3. 编写绘图代码
在窗体的代码背后(Form1.cs
)中,重写 OnPaint
方法以自定义绘制温度计。以下是一个示例代码:
csharpusing System;
using System.Drawing;
using System.Windows.Forms;
public class TemperatureForm : Form
{
private int temperature = 25; // 当前温度值
public TemperatureForm()
{
this.Paint += new PaintEventHandler(OnPaint);
this.Text = "温度计";
this.Size = new Size(300, 500);
}
private void OnPaint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
DrawThermometer(g, this.ClientRectangle, temperature);
}
private void DrawThermometer(Graphics g, Rectangle bounds, int temp)
{
// 画温度计的外形
Brush bodyBrush = Brushes.Gray;
Brush mercuryBrush = Brushes.Red;
Pen borderPen = new Pen(Color.Black, 2);
Rectangle thermometerBody = new Rectangle(bounds.X + 100, bounds.Y + 50, 50, 300);
Rectangle bulb = new Rectangle(bounds.X + 110, bounds.Y + 350, 30, 30);
g.FillRectangle(bodyBrush, thermometerBody);
g.FillEllipse(bodyBrush, bulb);
g.DrawRectangle(borderPen, thermometerBody);
g.DrawEllipse(borderPen, bulb);
// 画温度计内的水银
int mercuryHeight = Math.Max(0, (int)(300 * (temp + 10) / 40.0)); // 假设温度范围从 -10 到 30
Rectangle mercury = new Rectangle(bounds.X + 102, bounds.Y + 350 - mercuryHeight, 46, mercuryHeight);
g.FillRectangle(mercuryBrush, mercury);
// 显示当前温度值
Font font = new Font("Arial", 10);
Brush textBrush = Brushes.Black;
g.DrawString($"{temp}°C", font, textBrush, bounds.X + 110, bounds.Y + 360);
}
[STAThread]
public static void Main()
{
Application.EnableVisualStyles();
Application.Run(new TemperatureForm());
}
}
4. 运行程序
- 保存代码并返回 “设计视图”。
- 按 “F5” 或点击 “开始” 按钮运行程序。
代码解释
TemperatureForm
类继承自Form
类,表示主窗体。- 在
TemperatureForm
构造函数中,设置窗体的标题和大小。 OnPaint
方法处理窗体的绘制事件。它会调用DrawThermometer
方法来绘制温度计。DrawThermometer
方法绘制温度计的主体、灯泡部分以及水银的高度。水银的高度根据温度值计算并绘制。Main
方法启动应用程序。
注意事项
- 调整温度范围:可以根据实际需求调整温度范围和绘图比例。
- 样式和颜色:可以自定义温度计的样式和颜色以符合应用程序的主题。
- 交互功能:可以添加文本框或滑块控件来动态更新温度值,从而实时更新温度计的显示。
通过以上步骤,你可以在 Windows 窗体应用程序中使用 C# 绘制一个简单的温度计。