【发布时间】:2009-07-23 16:09:56
【问题描述】:
如何使 silverlight 列表框的所有项目都具有相同的大小,并让它们占据列表框高度的 100%。 IE。 1 项将是列表框的高度,2 项将是列表框高度的 50%,等等...
编辑 - 这是代码
public class UniformPanel : Panel
{
protected override Size MeasureOverride(Size availableSize)
{
Size panelDesiredSize = new Size();
for (int i = 0; i < Children.Count; i++)
{
UIElement child = Children[i];
child.Measure(availableSize);
var childDesiredSize = child.DesiredSize;
panelDesiredSize.Height += childDesiredSize.Height;
if (panelDesiredSize.Width < childDesiredSize.Width)
{
panelDesiredSize.Width = childDesiredSize.Width;
}
}
return panelDesiredSize;
}
protected override Size ArrangeOverride(Size finalSize)
{
double height = finalSize.Height/Children.Count;
for (int i = 0; i < Children.Count; i++)
{
UIElement child = Children[i];
Size size = new Size(finalSize.Width, height);
child.Arrange(new Rect(new Point(0, i * height), size));
}
return finalSize; // Returns the final Arranged size
}
}
【问题讨论】:
标签: c# .net wpf silverlight