我想使用10張圖像製作自定義動畫進度條。現在我用一個Timer`s蜱改變每5毫秒資源圖片:xaml自定義進度條與圖像
XAML:
<Grid>
<Image HorizontalAlignment="Stretch"
Margin="0"
VerticalAlignment="Top"
Stretch="Fill"
x:Name="imageProgressBar"/>
</Grid>
C#
private void StartAnimation()
{
if (IsAnimating) return;
_timer = new DispatcherTimer();
_timer.Interval = FrameDuration;
_timer.Tick += TimerTick;
_timer.Start();
}
private void StopAnimation()
{
if (!IsAnimating) return;
_timer.Stop();
_timer = null;
}
private void TimerTick(object sender, object e)
{
if (FramesCount == 0 || _frames == null) return;
_currentFrame++;
_currentFrame = _currentFrame % FramesCount;
if (_currentFrame < _frames.Count)
imageProgressBar.Source = _frames[_currentFrame];
}
這種變體的作品,但它不夠好,因爲它使用UI(我猜)線程處理,這就是爲什麼它有時慢。 有什麼辦法改變圖像來源不同嗎?
這可能是改變並隨後重新渲染圖像,這比渲染源頭的速度慢得多。由於您的需求非常特別,因此可能需要馬上加載所有10張圖片,然後改變其不透明度或可見度以實現您以後的效果。 – Logan
@dmitriy檢查jerrynixon的定製進度環關聯[鏈接](http://blog.jerrynixon.com/2015/06/lets-code-build-custom-progress-ring-in.html)希望這可以幫助。 .. – Krth
感謝您的回覆。 @Logan我只是想過,但因爲我是新的XAML,我無法考慮如何實現它 – dmitriy