Мне нужно создать анимацию высоты сетки (это с данными дб микрофона, я имитировал прием данных случайным образом).Но созданная мною анимация совсем не плавная.Как получить анимацию для создания примера, подобного помощнику Google (приложение Google Play), с четырьмя цветными полосами (я имею в виду это как плавная анимация)?
MainPage.xaml:
<Grid>
<Grid x:Name="ColorGrid" Background="Blue" Height="150" Width="40" CornerRadius="20"/>
</Grid>
MainPage.xaml.cs:
DispatcherTimer TimerHeight = new DispatcherTimer();
Storyboard storyboard1 = new Storyboard();
double AnimationTime = 50;
public MainPage()
{
this.InitializeComponent();
TimerHeight.Interval = TimeSpan.FromMilliseconds(50);
TimerHeight.Tick += TimerHeight_Tick;
TimerHeight.Start();
}
private void TimerHeight_Tick(object sender, object e)
{
double ActualHeight = GetRandomNumber(150,350);
//ColorGrid.Height = ActualHeight;
StartAnimation(ColorGrid, ActualHeight);
}
public double GetRandomNumber(double minimum, double maximum)
{
Random random = new Random();
return random.NextDouble() * (maximum - minimum) + minimum;
}
private void StartAnimation(Grid GridColor, double GridHight)
{
storyboard1 = new Storyboard();
var AnimationOne = new EasingDoubleKeyFrame() { KeyTime = KeyTime.FromTimeSpan(TimeSpan.FromMilliseconds(AnimationTime)), Value = GridHight, EasingFunction = new QuarticEase() { EasingMode = EasingMode.EaseOut } };
var AnimOne = new DoubleAnimationUsingKeyFrames();
AnimOne.EnableDependentAnimation = true;
AnimOne.KeyFrames.Add(AnimationOne);
Storyboard.SetTargetProperty(AnimOne, "(FrameworkElement.Height)");
Storyboard.SetTarget(AnimOne, GridColor);
storyboard1.Children.Add(AnimOne);
storyboard1.Begin();
}
Хотя я использовал анимацию, все равно, что есть кадры.Как получить плавную анимацию?
Заранее спасибо.