ProgressBar 控件的 IsIndeterminate
属性如果为 True,则表示忙碌中并显示一个滚动动画。
在设置 IsIndeterminate
为 True
之后, 如果显示过的 ProgressBar 被隐藏,那么动画是不会被禁用的。
注意到这点是因为:我使用 ProgressBar 做了一个加载提示,并在加载完成后将控件隐藏。在某个配置较低的服务器上,这个空闲不动的界面一直稳定的占用 30% 的 CPU 。
如何解决
该问题在 2018 年就有讨论:
https://github.com/AvaloniaUI/Avalonia/issues/2012
解决方式是将 IsIndeterminate
与 IsVisiable
绑定为相同的值,大概就是下面的样子:
<ProgressBar IsVisible="{Binding IsBusy}" IsIndeterminate="{Binding IsBusy}" />