【问题标题】:WPF how does scrollviewer respond to requests for sizes greater than the available size?WPF scrollviewer 如何响应大于可用大小的请求?
【发布时间】:2013-07-11 02:59:17
【问题描述】:

据我了解,在测量期间,滚动查看器将首先传递其父级的可用大小,例如宽10,高10

尽管有一个 10x10 区域可用,但它会在测量其子级时将其子级(无穷大、无穷大)作为可用大小。

我很好奇接下来会发生什么。孩子们将采用该尺寸,并为滚动查看器制作请求的尺寸。如果孩子请求的尺寸大于scrollviewer的可用尺寸,scrollviewer是采用child的尺寸还是scrollviewer可用的尺寸?

然后滚动查看器的宽度和高度会被修改还是只修改滚动查看器的实际宽度和实际高度?

【问题讨论】:

  • 你尝试的时候发生了什么?

标签: wpf xaml scrollviewer


【解决方案1】:

布局过程是一个两步过程。第一个对象接收 Measure 请求,通常传递给它们的 Size 很大,因为此请求应返回控件所需的大小。滚动查看器将计算它完全需要的大小并返回它。它实际上是在询问孩子们的总尺寸要求。

下一步将是安排步骤,每个控件接收可用大小。滚动查看器现在将收到它需要约束自己及其子项的实际大小。

布局过程永远不会修改宽度和高度,而是用实际大小填充 ActualWidth 和 ActualHeight。

【讨论】:

  • 我想我还是有点困惑,因为如果滚动查看器在排列期间获得了实际可用大小,那么孩子在排列中会收到什么?我觉得黑魔法继续使只有一部分孩子显示在滚动查看器中,其余部分能够滚动到。孩子是否将自己完全呈现在无限的空间中?无论如何,你的回答有帮助,所以我会去测试安排中发生的事情。我假设在排列后修改了孩子的实际宽度和实际高度
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 2015-08-18
  • 2016-10-03
  • 1970-01-01
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多