我正在使用WPF创建一个应用程序。在其中我实现了IScrollInfo
接口以获取画布的可见区域。我重写方法MeasureOverride(Size availableSize)
以获取视口,但是我收到一个我无法理解的错误:
protected override Size MeasureOverride(Size availableSize)
{
foreach (UIElement child in Children)
{
child.Measure(availableSize);
resultSize.Width = Math.Max(resultSize.Width,
child.DesiredSize.Width);
resultSize.Height = Math.Max(resultSize.Height,
child.DesiredSize.Height);
extent.Width += child.DesiredSize.Width;
}
resultSize.Width = double.IsPositiveInfinity(availableSize.Width)? resultSize.Width : availableSize.Width;
resultSize.Height = double.IsPositiveInfinity(availableSize.Height)? resultSize.Height : availableSize.Height;
extent.Height = resultSize.Height;
if ((_viewport != resultSize || _extent != extent) && ScrollOwner != null)
{
_viewport = resultSize;
_extent = extent;
ScrollOwner.InvalidateScrollInfo();
}
return resultSize;
}
孩子们在里面是什么..
答案 0 :(得分:0)
当你使用Canvas时,孩子会:
来自MSDN Canvas:
孩子们获得了一个 子元素的UIElementCollection 这个小组。 (继承自 面板。)
所有“子项目”都是Canvas的直接内容。 在你的情况下,你必须根据实际的滚动状态移动它们。
因此,如果孩子不存在,你就不会扩展Canvas ......