3 wpf animation opacity uielement
好吧,我正在使用WPF为我的MP3播放器制作一个GUI,我有一个边框,可以为播放曲目的每一秒扩大其宽度属性,从而为当前播放的歌曲制作一个"进度条".我将边框命名为ProgressBarBorder.整个播放列表完成后,我想使用DoubleAnimation淡出边框.现在,如果我再次启动播放器,边框会响应它的意思(意味着宽度从0开始并进展到歌曲的结尾),但是出于某种奇怪原因的不透明度属性保持为0.0(即DoubleAnimation的值)套).我已明确编码
ProgressBarBorder.Opacity = 1.0;
Run Code Online (Sandbox Code Playgroud)
在开始播放的方法中.然而,它保持隐形.现在,如果我不使用DoubleAnimation而只是写
ProgressBarBorder.Opacity = 0.0;
Run Code Online (Sandbox Code Playgroud)
播放列表完成后,当我再次启动播放器时,它会返回1.0.这就是为什么我肯定动画是造成问题的动画的原因.此外,在动画结束后,该属性是不是应该回到它的原始状态?如果是,我的边框应在动画完成后自动显示.
这是我的部分伪代码:
if (TrackIsComplete)
{
DoubleAnimation Fading = new DoubleAnimation();
Fading.From = 1.0;
Fading.To = 0.0;
Fading.Duration = TimeSpan.FromSeconds(3);
ProgressBarBorder.BeginAnimation(Border.OpacityProperty, Fading);
}
Run Code Online (Sandbox Code Playgroud)
和
private void PlayTrack()
{
ProgressBarBorder.Opacity = 1.0;
Play();
....
}
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?谢谢.
动画保持其目标值.要释放任何动画的依赖项属性,请BeginAnimation使用null值执行以下操作:
private void PlayTrack()
{
ProgressBarBorder.BeginAnimation(Border.OpacityProperty, null);
ProgressBarBorder.Opacity = 1.0;
....
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4739 次 |
| 最近记录: |