private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            var labelWidth = Control_Label.ActualWidth;

            if (labelWidth <= ActualWidth)
            {
                var space = ActualWidth - labelWidth;
                Dispatcher.Invoke(() =>
                {
                    Control_Label.SetValue(Canvas.LeftProperty, space / 2d);
                });
            }
        }
        private void Worker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (!_worker.CancellationPending)
            {
                if ((DateTime.Now - _beginAutoScroll).TotalMilliseconds < 1000)
                {
                    Thread.Sleep(10);
                    continue;
                }

                Dispatcher.Invoke(() =>
                {
                    if ((DateTime.Now - _reachedDefaultPosition).TotalMilliseconds < 2000)
                    {
                        return;
                    }

                    var labelWidth = Control_Label.ActualWidth;
                    double left    = (double)Control_Label.GetValue(Canvas.LeftProperty);
                    if (left < -labelWidth)
                    {
                        left = ActualWidth + 0.5;
                    }

                    Control_Label.SetValue(Canvas.LeftProperty, left - 0.5);

                    if (left - 0.5 == 0.0)
                    {
                        _reachedDefaultPosition = DateTime.Now;
                    }
                });
                Thread.Sleep(10);
            }

            Dispatcher.Invoke(() =>
            {
                Control_Label.SetValue(Canvas.LeftProperty, 0d);
            });
        }