2

如屏幕截图所示,我的ProgressBar1.Value更新正确,但不是我的TaskbarItemInfo.ProgressValue

在此处输入图像描述

这是我用来更新两者的代码:

void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    // Set the Value porperty when progress changed.
    this.ProgressBar1.Value = (double)e.ProgressPercentage;

    this.TaskbarItemInfo.ProgressState = TaskbarItemProgressState.Normal;
    this.TaskbarItemInfo.ProgressValue = e.ProgressPercentage / 100;
}

如何TaskbarItemInfo正确进行更新?

4

2 回答 2

9
this.TaskbarItemInfo.ProgressValue = e.ProgressPercentage / 100;

在我看来,您正在将一个 int 与另一个 int 相除,因此当预期为 double 时,结果将是一个 int。

只需尝试在 100 后缀“d”(使其成为双精度):

this.TaskbarItemInfo.ProgressValue = e.ProgressPercentage / 100d;
于 2013-08-14T14:18:22.830 回答
3

我会做以下事情:

TaskbarItemInfo.ProgressValue = ProgressBar1.Value /(double)ProgressBar1.Maximum;

这可确保任务栏进度反映进度条的进度,即使Maximum设置为100.

于 2013-08-14T14:20:49.880 回答