/// <summary> /// Set the state for this panel /// </summary> private void SetState() { if (this.captionCtrl.Width >= this.captionCtrl.Height) { if (this.captionCtrl.Height == this.Height) { state = ExtendedPanelState.Collapsed; } else { state = ExtendedPanelState.Expanded; } } else { if (this.captionCtrl.Width == this.Width) { state = ExtendedPanelState.Collapsed; } else { state = ExtendedPanelState.Expanded; } } }
/// <summary> /// Set the state for this panel /// </summary> private void SetState() { if (captionCtrl.Width >= captionCtrl.Height) { if (captionCtrl.Height == Height) { state = ExtendedPanelState.Collapsed; } else { state = ExtendedPanelState.Expanded; } } else { if (captionCtrl.Width == Width) { state = ExtendedPanelState.Collapsed; } else { state = ExtendedPanelState.Expanded; } } }
private void CollapsingHandler(object sender, ChangeStyleEventArgs e) { //check to see if Anchoring needs special treatment if (this.captionAlign == DirectionStyle.Right || this.captionAlign == DirectionStyle.Down) { backupAnchor = this.Anchor; this.Anchor |= AnchorStyles.Left; this.Anchor |= AnchorStyles.Top; this.Anchor &= ~AnchorStyles.Right; this.Anchor &= ~AnchorStyles.Bottom; } //create the thread for collasping/expanding the control if (null == collapseAnimation) { collapseAnimation = new CollapseAnimation(); //set the events to be raised by the animation worker thread collapseAnimation.NotifyAnimation += new NotifyAnimationEvent(OnNotifyAnimationEvent); collapseAnimation.NotifyAnimationFinished += new NotifyAnimationFinishedEvent(OnNotifyAnimationFinished); if (backupHeight == 0) { backupHeight = this.Height; } if (backupWidth == 0) { backupWidth = this.Width; } } switch (this.captionAlign) { case DirectionStyle.Up: if (e.Old == DirectionStyle.Up) { backupHeight = this.Height; backupWidth = this.Width; collapseAnimation.Maximum = this.Height; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = this.Height - captionCtrl.Height; } } else { collapseAnimation.Maximum = backupHeight; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupHeight - captionCtrl.Height); } } break; case DirectionStyle.Down: if (e.Old == DirectionStyle.Down) { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); //save the size as will need them for expanding the control back backupHeight = this.Height; backupWidth = this.Width; collapseAnimation.Maximum = this.Height; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = this.Height - captionCtrl.Height; } } else { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); collapseAnimation.Maximum = backupHeight; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupHeight - captionCtrl.Height); } } break; case DirectionStyle.Left: if (e.Old == DirectionStyle.Left) { //save the size as will need them for expanding the control back backupHeight = this.Height; backupWidth = this.Width; collapseAnimation.Maximum = this.Width; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = this.Width - captionCtrl.Width; } } else { collapseAnimation.Maximum = backupWidth; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupWidth - captionCtrl.Width); } } break; case DirectionStyle.Right: if (e.Old == DirectionStyle.Right) { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); backupHeight = this.Height; backupWidth = this.Width; collapseAnimation.Maximum = this.Width; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = this.Width - captionCtrl.Width; } } else { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); collapseAnimation.Maximum = backupWidth; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupWidth - captionCtrl.Width); } } break; } SetState(); ShowControls(); //start collapsing/expanding and set the new state if (state == ExtendedPanelState.Collapsed) { state = ExtendedPanelState.Expanding; } else { if (state == ExtendedPanelState.Expanded) { state = ExtendedPanelState.Collapsing; } } collapseAnimation.Start(); }
/// <summary> /// Event raised for exapanding/collapsing the control /// </summary> /// <param name = "sender">instance of the object raising the event</param> /// <param name = "e">instance of an object containing the event data</param> private void CollapsingHandler(object sender, ChangeStyleEventArgs e) { //check to see if Anchoring needs special treatment if (captionAlign == DirectionStyle.Right || captionAlign == DirectionStyle.Down) { backupAnchor = Anchor; Anchor |= AnchorStyles.Left; Anchor |= AnchorStyles.Top; Anchor &= ~AnchorStyles.Right; Anchor &= ~AnchorStyles.Bottom; } //create the thread for collasping/expanding the control if (null == collapseAnimation) { collapseAnimation = new CollapseAnimation(); //set the events to be raised by the animation worker thread collapseAnimation.NotifyAnimation += OnNotifyAnimationEvent; collapseAnimation.NotifyAnimationFinished += OnNotifyAnimationFinished; if (backupHeight == 0) { backupHeight = Height; } if (backupWidth == 0) { backupWidth = Width; } } switch (captionAlign) { case DirectionStyle.Up: if (e.Old == DirectionStyle.Up) { backupHeight = Height; backupWidth = Width; collapseAnimation.Maximum = Height; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = Height - captionCtrl.Height; } } else { collapseAnimation.Maximum = backupHeight; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupHeight - captionCtrl.Height); } } break; case DirectionStyle.Down: if (e.Old == DirectionStyle.Down) { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); //save the size as will need them for expanding the control back backupHeight = Height; backupWidth = Width; collapseAnimation.Maximum = Height; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = Height - captionCtrl.Height; } } else { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); collapseAnimation.Maximum = backupHeight; collapseAnimation.Minimum = captionCtrl.Height; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupHeight - captionCtrl.Height); } } break; case DirectionStyle.Left: if (e.Old == DirectionStyle.Left) { //save the size as will need them for expanding the control back backupHeight = Height; backupWidth = Width; collapseAnimation.Maximum = Width; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = Width - captionCtrl.Width; } } else { collapseAnimation.Maximum = backupWidth; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupWidth - captionCtrl.Width); } } break; case DirectionStyle.Right: if (e.Old == DirectionStyle.Right) { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); backupHeight = Height; backupWidth = Width; collapseAnimation.Maximum = Width; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = step; } else { collapseAnimation.Step = Width - captionCtrl.Width; } } else { //have to extract caption ctrl because of the flickering involved ChangeCaptionParent(); collapseAnimation.Maximum = backupWidth; collapseAnimation.Minimum = captionCtrl.Width; if (animation == Animation.Yes) { collapseAnimation.Step = -step; } else { collapseAnimation.Step = -(backupWidth - captionCtrl.Width); } } break; } SetState(); ShowControls(); //start collapsing/expanding and set the new state if (state == ExtendedPanelState.Collapsed) { state = ExtendedPanelState.Expanding; } else { if (state == ExtendedPanelState.Expanded) { state = ExtendedPanelState.Collapsing; } } collapseAnimation.Start(); }