日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

wpf 动画_WPF中监视动画进度

發(fā)布時間:2025/5/22 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wpf 动画_WPF中监视动画进度 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本篇接上一篇,在上一篇中,我們制作了一個簡單利用動畫來控制播放一首MP3的例子,那么如果我們想監(jiān)視到動畫執(zhí)行到什么進(jìn)度了呢?很明顯,WPF時可以做到的,只需要響應(yīng)故事板的CurrentTimeInvalidated事件。

話不多少直接上代碼(不了解代碼結(jié)構(gòu)的朋友可以看看上一篇):

前臺Xaml:

1.添加一個ProgressBar監(jiān)視進(jìn)度,注意這里最大值設(shè)置為1,因為動畫始終Clock的CurrentProcess屬性最大值是1。

<ProgressBar x:Name="prsbar" HorizontalAlignment="Left" Maximum="1" Height="7" VerticalAlignment="Top" Width="677" Margin="0,30,0,0"/>

2.響應(yīng)故事板的CurrentTimeInvalidated事件

<Storyboard x:Key="music" BeginTime="0:0:1" CurrentTimeInvalidated="Storyboard_CurrentTimeInvalidated" >

<MediaTimeline Storyboard.TargetName="md" d:DesignTimeNaturalDuration="205" Source="ALWAYS.mp3"/>

</Storyboard>

后臺代碼:

/// <summary>

/// 該事件在動畫前進(jìn)一個步長時發(fā)生

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void Storyboard_CurrentTimeInvalidated(object sender, EventArgs e)

{

//Clock對象為動畫時鐘

Clock clock = (Clock)sender;

if(clock.CurrentProgress==null)

{

this.prsbar.Value = 0;

}

else

{

this.prsbar.Value = (double)clock.CurrentProgress;

}

}

最終效果如下:

當(dāng)然,故事板還有其他的事件,比如Completed,CurrentStateValidated等等,有興趣的朋友歡迎留言一起交流哦。

總結(jié)

以上是生活随笔為你收集整理的wpf 动画_WPF中监视动画进度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。