44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
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 availableSize)
|
|
{
|
|
var maxSize = new Size();
|
|
var children = InternalChildren;
|
|
|
|
for (int i = 0, count = children.Count; i < count; ++i)
|
|
{
|
|
var child = children[i];
|
|
if (child != null)
|
|
{
|
|
child.Measure(availableSize);
|
|
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;
|
|
}
|
|
}
|
|
} |