好吧,所以我发现了一些相当奇怪的行为,同时搞乱了WPF ProgressBar控件。此控件位于ListView控件的列中,其实质与this question & answer几乎没有什么不同。WPF ProgressBar在更新速度过快时会失去光泽 - bug?
我由几个属性(Min
,Max
,Value
),所有单向绑定明显的手段结合Progressbar
一类。此另一个类是从另一个线程更新的,并定期使用接口让ProgressBar知道状态正在进行。这一切都很好!
但这里是奇怪的地方。我的ProgressBar失去光芒......直到达到Max
(= 100%)的价值。然后它突然开始在绿色酒吧里闪烁着白色的光芒,这非常烦人。我有一个理由表现出进步,而一旦你开始注意到它不在那里,缺乏脉搏实际上很让人分心。
因此,我启动了调试。我发现Thread.Sleep(1000)
在我的线程处理中,它仍然隐藏着光芒,但是如果我将它撞到Thread.Sleep(1500)
,那么辉煌就会随时回到疯狂的活力。之后,我尝试将我的进度单位转换为较小的数字,因此整数值需要更长的时间才能更改。 Min 0,Max 100仍然缺乏光芒。最低0分,最高10分的辉光以充满活力回归。在所有情况下,花费达到100%的工作量和时间是相同的,但对于辉光显示来说,这是一个非常明显的二元化YES/NO效果。我没有测试过的唯一的事情是,当ProgressBar没有放在这个ListView控件中时它是否也会发生。
我对自己非常了解,无法理解ProgressBar控件所涉及的(XAML)的深层WPF内部。所以我希望这里的任何人都知道这是一个已知的bug,他们偶然发现的东西,或者他们甚至可能知道如何解决/修复的东西。
我的机器运行Windows 7,并且我正在VS2010中开发针对.NET Framework 4 Client Profile。