void ShowBeforeAnimation() { // アニメーション前 foreach (var obj in AssociatedObject.Children) { var child = obj as FrameworkElement; if (IsExpandingChild(child)) { var childWrapper = new GridElementWrapper(child, IsHorizontal, Dock); childWrapper.PreShow(); } } AssociatedDefinition.MaxSize = Backup_MaxSize; }
void ShowAfterAnimation() { // アニメーション後 AssociatedDefinition.MinSize = Backup_MinSize; AssociatedDefinition.Size = Backup_Size; // TODO: starの場合は相当する重みを計算する処理が必要 foreach (var obj in AssociatedObject.Children) { var child = obj as FrameworkElement; if (IsExpandingChild(child)) { var childWrapper = new GridElementWrapper(child, IsHorizontal, Dock); childWrapper.PostShow(); } } }
void HideAfterAnimation() { // アニメーション後 AssociatedDefinition.Size = new GridLength(0, GridUnitType.Pixel); AssociatedDefinition.MaxSize = 0; foreach (var obj in AssociatedObject.Children) { var child = obj as FrameworkElement; if (IsExpandingChild(child)) { var childWrapper = new GridElementWrapper(child, IsHorizontal, Dock); childWrapper.PostHide(); } } }
void HideBeforeAnimation() { // アニメーション前 foreach (var obj in AssociatedObject.Children) { var child = obj as FrameworkElement; if (IsExpandingChild(child)) { var childWrapper = new GridElementWrapper(child, IsHorizontal, Dock); childWrapper.PreHide(); } } AssociatedDefinition = GetAssociatedDefinition(); Backup_Size = AssociatedDefinition.Size; Backup_ActualSize = AssociatedDefinition.ActualSize; Backup_MinSize = AssociatedDefinition.MinSize; Backup_MaxSize = AssociatedDefinition.MaxSize; AssociatedDefinition.Size = new GridLength(Backup_ActualSize, GridUnitType.Pixel); AssociatedDefinition.MinSize = 0; }