嗨,我想知道是否有人可以提供帮助。我设法创建了一个体积计,我正在使用管道“|”视觉显示的字符。我能够根据音量峰值级别更改颜色,并且工作正常,但所有字符的字体颜色都会发生变化。然而,我所追求的是保留原始颜色。因此,管道串显示绿色,黄色,橙色,然后是红色。这是我的代码......所以问题是我如何保留原始字体颜色,但在音量开始达到峰值时更改新的字体颜色。如果那有意义的话。非常感谢。
public void audiometering()
{
// start timer and select the volume value
vmt.Start();
MMDevice defaultDevice = devEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
var volume = defaultDevice.AudioMeterInformation.MasterPeakValue;
var scale = (int)Math.Floor(volume * 20);
vUMonitorToolStripMenuItem.Text = volume.ToString();
// calculate scale of volume and display as pipes
var sb = new StringBuilder();
sb.Append('|', scale);
sb.Append(' ', 20 - scale);
vUMonitorToolStripMenuItem.Font = new Font(vUMonitorToolStripMenuItem.Font, FontStyle.Bold);
if ((scale <= 5))
{
vUMonitorToolStripMenuItem.ForeColor = Color.Green;
}
if ((scale >= 5 && scale <= 10))
{
vUMonitorToolStripMenuItem.ForeColor = Color.Yellow;
}
if ((scale >= 10 && scale <= 15))
{
vUMonitorToolStripMenuItem.ForeColor = Color.Orange;
}
if ((scale >= 15))
{
vUMonitorToolStripMenuItem.ForeColor = Color.Red;
}
vUMonitorToolStripMenuItem.Text = sb.ToString();
}