public void CleanRythmStorm()
        {
            while (DateTime.UtcNow < CleanRythmStormTime)
            {
                Thread.Sleep(200);
            }
            Dispatcher.Invoke(() =>
            {
                double offset = 0;
                while (RythmStormPanel.Children.Count > 2)
                {
                    FrameworkElement frameworkElement = (FrameworkElement)RythmStormPanel.Children[0];
                    offset += frameworkElement.ActualHeight;
                    RythmStormPanel.Children.RemoveAt(0);
                }
                double verticalOffset = RythmStormScrollViewer.VerticalOffset - offset;
                if (verticalOffset < 0)
                {
                    verticalOffset = 0;
                }
                RythmStormFluidMove.Duration = new Duration(TimeSpan.FromSeconds(0));
                RythmStormScrollViewer.ScrollToVerticalOffset(verticalOffset);
            });
            Thread.Sleep(1);
            Dispatcher.Invoke(() =>
            {
                RythmStormFluidMove.Duration = new Duration(TimeSpan.FromSeconds(0.2));
            });

            Console.WriteLine("Rythm storm cleaned");
        }
        public void AppendRythmStorm(BiliLiveJsonParser.Danmaku item)
        {
            Dispatcher.Invoke(() =>
            {
                RythmStormPanel.Children.Add(new Danmaku(item));
                if (!RythmStormScrollViewer.IsMouseOver)
                {
                    RythmStormScrollViewer.ScrollToBottom();
                }
                CleanRythmStormTime = DateTime.UtcNow.AddSeconds(0.2);
                HideRythmStormTime  = DateTime.UtcNow.AddSeconds(5);
            });

            if (CleanRythmStormTask == null || CleanRythmStormTask.IsCompleted)
            {
                CleanRythmStormTask = Task.Factory.StartNew(CleanRythmStorm);
            }
            if (ShowRythmStormTask == null || ShowRythmStormTask.IsCompleted)
            {
                ShowRythmStormTask = Task.Factory.StartNew(ShowRythmStorm);
            }
        }