private static object OnCoerceIsActive(DependencyObject d, object basevalue) { WindowControl w = d as WindowControl; if (w != null && !w._setIsActiveInternal && !w.AllowPublicIsActiveChange) { throw new InvalidOperationException("Cannot set IsActive directly. This is handled by the underlying system"); } return(basevalue); }
private double GetRestrictedTop(WindowControl windowControl) { if (windowControl.Top < 0) { return(0); } if (((windowControl.Top + windowControl.ActualHeight) > this.ActualHeight) && (this.ActualHeight != 0)) { double y = this.ActualHeight - windowControl.ActualHeight; return(y < 0 ? 0 : y); } return(windowControl.Top); }
private double GetRestrictedLeft(WindowControl windowControl) { if (windowControl.Left < 0) { return(0); } if (((windowControl.Left + windowControl.ActualWidth) > this.ActualWidth) && (this.ActualWidth != 0)) { double x = this.ActualWidth - windowControl.ActualWidth; return(x < 0 ? 0 : x); } return(windowControl.Left); }
private void SetChildPos(WindowControl windowControl) { // A MessageBox with no X and Y will be centered. // A ChildWindow with WindowStartupLocation == Center will be centered. if (((windowControl is MessageBox) && (windowControl.Left == 0) && (windowControl.Top == 0)) || ((windowControl is ChildWindow) && (((ChildWindow)windowControl).WindowStartupLocation == Windows.WindowStartupLocation.Center))) { this.CenterChild(windowControl); } else { Canvas.SetLeft(windowControl, windowControl.Left); Canvas.SetTop(windowControl, windowControl.Top); } }
private static object OnCoerceWindowStyle(DependencyObject d, object basevalue) { if (basevalue == DependencyProperty.UnsetValue) { return(basevalue); } WindowControl windowControl = d as WindowControl; if (windowControl == null) { return(basevalue); } return(windowControl.OnCoerceWindowStyle((WindowStyle)basevalue)); }
private static object OnCoerceCloseButtonVisibility(DependencyObject d, object basevalue) { if (basevalue == DependencyProperty.UnsetValue) { return(basevalue); } WindowControl windowControl = d as WindowControl; if (windowControl == null) { return(basevalue); } return(windowControl.OnCoerceCloseButtonVisibility((Visibility)basevalue)); }
/// <summary> /// Register and unregister to children events. /// </summary> protected override void OnVisualChildrenChanged(DependencyObject visualAdded, DependencyObject visualRemoved) { base.OnVisualChildrenChanged(visualAdded, visualRemoved); if (visualAdded != null && !(visualAdded is WindowControl)) { throw new InvalidOperationException("WindowContainer can only contain WindowControl types."); } if (visualRemoved != null) { WindowControl removedChild = (WindowControl)visualRemoved; removedChild.LeftChanged -= new EventHandler <EventArgs>(this.Child_LeftChanged); removedChild.TopChanged -= new EventHandler <EventArgs>(this.Child_TopChanged); removedChild.PreviewMouseLeftButtonDown -= new MouseButtonEventHandler(this.Child_PreviewMouseLeftButtonDown); removedChild.IsVisibleChanged -= new DependencyPropertyChangedEventHandler(this.Child_IsVisibleChanged); removedChild.IsKeyboardFocusWithinChanged -= new DependencyPropertyChangedEventHandler(this.Child_IsKeyboardFocusWithinChanged); if (removedChild is ChildWindow) { ((ChildWindow)removedChild).IsModalChanged -= new EventHandler <EventArgs>(this.Child_IsModalChanged); } } if (visualAdded != null) { WindowControl addedChild = (WindowControl)visualAdded; addedChild.LeftChanged += new EventHandler <EventArgs>(this.Child_LeftChanged); addedChild.TopChanged += new EventHandler <EventArgs>(this.Child_TopChanged); addedChild.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(this.Child_PreviewMouseLeftButtonDown); addedChild.IsVisibleChanged += new DependencyPropertyChangedEventHandler(this.Child_IsVisibleChanged); addedChild.IsKeyboardFocusWithinChanged += new DependencyPropertyChangedEventHandler(this.Child_IsKeyboardFocusWithinChanged); if (addedChild is ChildWindow) { ((ChildWindow)addedChild).IsModalChanged += new EventHandler <EventArgs>(this.Child_IsModalChanged); } } }
private bool IsModalWindow(WindowControl windowControl) { return(((windowControl is MessageBox) && (windowControl.Visibility == Visibility.Visible)) || ((windowControl is ChildWindow) && ((ChildWindow)windowControl).IsModal && ((ChildWindow)windowControl).WindowState == Windows.WindowState.Open)); }