在VS窗体中用c#画温度计

在 Visual Studio 中使用 C# 在 Windows 窗体应用程序中绘制温度计,可以通过以下步骤实现:

1. 创建新的 Windows 窗体应用程序

  1. 打开 Visual Studio。
  2. 选择 “创建新项目”
  3. 选择 “Windows 窗体应用 (.NET Framework)”“Windows Forms App (.NET Core)”,然后点击 “下一步”
  4. 输入项目名称和位置,点击 “创建”

2. 设计窗体

  1. 打开 “设计视图”
  2. 从工具箱中拖放一个 “Panel” 控件到窗体上,这将用作绘制温度计的画布。

3. 编写绘图代码

在窗体的代码背后(Form1.cs)中,重写 OnPaint 方法以自定义绘制温度计。以下是一个示例代码:

csharp
using 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. 运行程序

  1. 保存代码并返回 “设计视图”
  2. “F5” 或点击 “开始” 按钮运行程序。

代码解释

  1. TemperatureForm 类继承自 Form 类,表示主窗体。
  2. TemperatureForm 构造函数中,设置窗体的标题和大小。
  3. OnPaint 方法处理窗体的绘制事件。它会调用 DrawThermometer 方法来绘制温度计。
  4. DrawThermometer 方法绘制温度计的主体、灯泡部分以及水银的高度。水银的高度根据温度值计算并绘制。
  5. Main 方法启动应用程序。

注意事项

  • 调整温度范围:可以根据实际需求调整温度范围和绘图比例。
  • 样式和颜色:可以自定义温度计的样式和颜色以符合应用程序的主题。
  • 交互功能:可以添加文本框或滑块控件来动态更新温度值,从而实时更新温度计的显示。

通过以上步骤,你可以在 Windows 窗体应用程序中使用 C# 绘制一个简单的温度计。