无法重置ProgressBar

时间:2015-04-30 14:35:58

标签: c# wpf

我正在尝试让我疯狂的行为。

我有一个ProgressBar代表数据库中导入的演变(百分比,从0100)。

导入完成后(ProgressBar.Value = 100.0),我打开一个日志窗口,其代码如下所示:

RadWindow window = new RadWindow()
{
    //Set some properties
};
window.Closed += Log_Closed;
window.ShowDialog();

关闭RadWindow后,我想重置ProgressBar。如您所见,我使用代码如下的函数Log_Closed

private void Log_Closed(object sender, EventArgs e)
{
    //pbImport.Value = pbImport.Minimum; (didn't work)
    pbImport.Value = 0;
}

注意pbImport是我的进度条。

<{strong> Log_Closed 中的说明无效。

在说明之前:

Before Instruction

经过指示:

After Instruction

显然,进度条未在UI中更新。我无法理解这一点。谢谢你的帮助。

2 个答案:

答案 0 :(得分:8)

动画保留在属性上,为了在代码中重置它们,您必须先删除动画,以便“释放”该属性。

有关如何在WPF中设置动画后的属性的信息,请参阅https://msdn.microsoft.com/en-us/library/aa970493%28v=vs.110%29.aspx

答案 1 :(得分:0)

重置进度条可以通过使用&#34; if&#34;来实现。循环并递增进度条。

您可以为数据库进程设置bool值,然后只需:

private void Log_Closed(object sender, EventArgs e)
{
    //pbImport.Value = pbImport.Minimum; (didn't work)
    pbImport.Value = 0;

    if (database)
    {
        pbImport.Increment(100);
    }
}