好的,我正在使用 WPF 为我的 MP3 播放器制作一个 GUI,并且我有一个边框,可以在播放曲目的每一秒内扩大其宽度属性,从而为当前播放的歌曲制作一个“进度条”。我将边框命名为 ProgressBarBorder。整个播放列表完成后,我想使用 DoubleAnimation 淡出边框。现在,如果我再次启动播放器,边框会做出应有的反应(意味着宽度从 0 开始,一直到歌曲的结尾),但是由于某种奇怪的原因 opacity 属性保持为 0.0(这是 DoubleAnimation 的值套)。我已经明确编码
ProgressBarBorder.Opacity = 1.0;
在开始播放的方法中。尽管如此,它仍然是不可见的。现在,如果我不使用 DoubleAnimation 而只是写
ProgressBarBorder.Opacity = 0.0;
播放列表完成后,当我再次启动播放器时,它确实会回到 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);
}
和
private void PlayTrack()
{
ProgressBarBorder.Opacity = 1.0;
Play();
....
}
有人可以帮忙吗?谢谢。