这是可能的,但不是通过ProgressBar。Win7也不使用pb来绘制这些米,没有与条关联的窗口句柄。必须使用自定义绘图。这在WinForms和VisualStyleRenderer类中都是可能的。但是,有一件事没有帮助,那就是所需的视觉样式部分和状态没有声明,甚至在.NET 4.0中也没有声明。
此示例表单复制了仪表条:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
namespace WindowsFormsApplication1 {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
VisualStyleRenderer renderer = new VisualStyleRenderer(VisualStyleElement.ProgressBar.Bar.Normal);
protected override void OnPaint(PaintEventArgs e) {
renderer.SetParameters("PROGRESS", 11, 2);
renderer.DrawBackground(e.Graphics, new Rectangle(10, 10, 200, 15));
renderer.SetParameters("PROGRESS", 5, 4);
renderer.DrawBackground(e.Graphics, new Rectangle(10, 10, 100, 15));
}
}
}
我从vsstyle.h sdk头文件中获得了部件号和状态号。