public void Detach()
 {
     _drawerObser = null;
     if (_sc == null)
     {
         return;
     }
     _sc.DirectManipulationStarted -= _sc_DirectManipulationStarted;
     _sc.ViewChanged -= _sc_ViewChanged;;
     _sc              = null;
 }
 public void Attach(DependencyObject associatedObject)
 {
     _sc = associatedObject as ScrollViewer;
     if (_sc == null)
     {
         return;
     }
     _drawerObser = new DrawerCloserObserver(_sc, null);
     _sc.DirectManipulationStarted -= _sc_DirectManipulationStarted;
     _sc.DirectManipulationStarted += _sc_DirectManipulationStarted;
     _sc.ViewChanged -= _sc_ViewChanged;;
     _sc.ViewChanged += _sc_ViewChanged;
 }