【发布时间】:2016-04-02 08:14:59
【问题描述】:
我正在尝试根据已下载文件的百分比来制作变色 mehapps metroui 进度条。在 lua 中我喜欢这样:
ARGB(255, 255 * percent, 255 - (255 * percent), 0)
现在尝试在 C# 中执行此操作:
void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
double bytesIn = double.Parse(e.BytesReceived.ToString());
double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
double percentage = bytesIn / totalBytes * 100;
label2.Content = "Downloaded " + (e.BytesReceived / 1000) + "kb" + " of " + (e.TotalBytesToReceive / 1000) + "kb" + " (" + Math.Round(percentage) + "%)";
progressBar1.Value = int.Parse(Math.Truncate(percentage).ToString());
Color myColor = Color.FromArgb(255, 255 * (Math.Round(percentage)), 255 - (255 * (Math.Round(percentage))), 0);
string hex = myColor.R.ToString("X2") + myColor.G.ToString("X2") + myColor.B.ToString("X2");
Console.WriteLine(hex);
}
label2 效果很好,但 mycolor 行错误:
无法从双精度转换为字节。
我什至尝试使用progressBar1.Value 并得到同样的错误。我究竟做错了什么?有没有更简单的方法可以让我的进度条根据下载百分比从红色变为绿色?
【问题讨论】:
-
顺便说一句,请将这些整数转换为双精度数,不要将它们转换为字符串然后解析它们。