private static void OnAutoHidePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            BindableScrollBar sender = d as BindableScrollBar;

            if (sender.AutoHide == true)
            {
                sender.Visibility = Visibility.Hidden;
            }
        }
        private static void OnBoundScrollViewerPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var control = d as BindableScrollBar;
            var old     = e.OldValue as ScrollViewer;

            if (old != null)
            {
                old.ScrollChanged -= control.BoundScrollChanged;
            }
            var newViewer = e.NewValue as ScrollViewer;

            if (newViewer != null)
            {
                newViewer.ScrollChanged += control.BoundScrollChanged;
            }
            BindableScrollBar sender = d as BindableScrollBar;

            if (sender != null && e.NewValue != null)
            {
                sender.UpdateBindings();
            }
        }