private static void MyIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
 {
     if (sender is UserControl c)
     {
         IVisibilityChanged f = GetVisibilityActionChanged(c);
         if (f != null)
         {
             if ((bool)e.NewValue)
             {
                 f.Showing();
             }
             else
             {
                 f.Hiding();
             }
         }
     }
 }
 public static void SetVisibilityActionChanged(DependencyObject sender, IVisibilityChanged value) => sender.SetValue(VisibilityActionChangedProperty, value);