У меня есть 1 метод и 1 событие
private void Grid_MouseWheel(object sender, MouseWheelEventArgs e)
{
if (currentSection == OsuSection.PreLoad)
return;
if(VolumeMixer.Visibility == Visibility.Collapsed)
{
isAwaitVolumeGaugeRunning = true;
VolumeMixer.Visibility = Visibility.Visible;
DoubleAnimation fadeIn = new DoubleAnimation(0, 1, TimeSpan.FromSeconds(0.1), FillBehavior.Stop);
fadeIn.Completed += (object senderr, EventArgs ee) => { VolumeMixer.Opacity = 1; };
VolumeMixer.BeginAnimation(OpacityProperty, fadeIn);
Fadeout();
return;
}
if (e.Delta > 0)
workingResources.MasterVolumeValue += 5;
else
workingResources.MasterVolumeValue -= 5;
}
private async Task Fadeout()
{
await Task.Delay(1500);
if (!isAwaitVolumeGaugeRunning)
return;
DoubleAnimation fadeOut = new DoubleAnimation(1, 0, TimeSpan.FromSeconds(0.1), FillBehavior.Stop);
fadeOut.Completed += (object sender, EventArgs e) =>
{
VolumeMixer.Opacity = 0;
VolumeMixer.Visibility = Visibility.Collapsed;
};
VolumeMixer.BeginAnimation(OpacityProperty, fadeOut);
isAwaitVolumeGaugeRunning = false;
}
Когда пользователь прокручивает, Canvas VolumeMixer FadeIn и MasterVolueValue связываются с TextBlock и медиаэлементом. Но если в то время как пользователь непрерывно прокручивает через 1,5 сек, Canvas FadeOut и FadeIn (заняло 0,2 сек). Поэтому я хочу, чтобы холст скрывался после полной прокрутки пользователем 1,5 секунды