WP7备注(22)(多类型Panel自定义)
2011-04-29 11:31 血糯米Otomii 阅读(242) 评论(0) 收藏 举报单Cell的Grid自定义
namespace SingleCellGridDemo
{
public class SingleCellGrid : Panel
{
protected override Size MeasureOverride(Size availableSize)
{
Size compositeSize = new Size();
foreach (UIElement child in Children)
{
child.Measure(availableSize);
compositeSize.Width = Math.Max(compositeSize.Width,
child.DesiredSize.Width);
compositeSize.Height = Math.Max(compositeSize.Height,
child.DesiredSize.Height);
}
return compositeSize;
}
protected override Size ArrangeOverride(Size finalSize)
{
foreach (UIElement child in Children)
{
child.Arrange(new Rect(new Point(), finalSize));
}
return base.ArrangeOverride(finalSize);
}
}
}
Vertical StackPanel自定义:
protected override Size MeasureOverride(Size availableSize)
{
Size compositeSize = new Size();
foreach (UIElement child in Children)
{
child.Measure(new Size(availableSize.Width, Double.PositiveInfinity));
compositeSize.Width = Math.Max(compositeSize.Width,
child.DesiredSize.Width);
compositeSize.Height += child.DesiredSize.Height;
}
return compositeSize;
}
protected override Size ArrangeOverride(Size finalSize)
{
double x = 0, y = 0;
foreach (UIElement child in Children)
{
child.Arrange(new Rect(x, y, finalSize.Width, child.DesiredSize.Height));
y += child.DesiredSize.Height;
}
return base.ArrangeOverride(finalSize);
}
 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号