1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System;
- using System.Windows;
- using System.Windows.Controls;
- namespace HandyControl.Controls;
- /// <summary>
- /// 用以代替Grid
- /// </summary>
- /// <remarks>
- /// 当不需要Grid的行、列分隔等功能时建议用此轻量级类代替
- /// </remarks>
- public class SimplePanel : Panel
- {
- protected override Size MeasureOverride(Size constraint)
- {
- var maxSize = new Size();
- foreach (UIElement child in InternalChildren)
- {
- if (child != null)
- {
- child.Measure(constraint);
- maxSize.Width = Math.Max(maxSize.Width, child.DesiredSize.Width);
- maxSize.Height = Math.Max(maxSize.Height, child.DesiredSize.Height);
- }
- }
- return maxSize;
- }
- protected override Size ArrangeOverride(Size arrangeSize)
- {
- foreach (UIElement child in InternalChildren)
- {
- child?.Arrange(new Rect(arrangeSize));
- }
- return arrangeSize;
- }
- }
|