- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果父控件询问其子控件“你想要多大?”,那么传递的 availableSize 参数有什么用?我已经通过 Reflector 查看了 StackPanel 的源代码,但我仍然无法理解。
如果child想要150x30,那么即使availableSize是100x20它还是报150x30不是吗?如果希望子项将自己限制在 availableSize,那么也可以根据从对子项调用 MeasureOverride 返回的大小来完成 - 没有必要传递该参数。
有什么我没有考虑到的吗?
最佳答案
If the child wants to be 150x30, then it still reports 150x30 even if availableSize is 100x20, doesn't it?
这取决于控件,但一般答案是否定的。无论如何,重点是让它有机会适应容器,但这不是必须的。
想想 Grid 和 StackPanel 之间的区别。 Grid 通常会根据可用大小精确调整自身大小。相比之下,StackPanel 将仅在一个方向上无限调整自身大小(取决于其方向),而不管可用大小如何。在另一个方向上,它只会延伸到它的 child 所需的空间,除非它的“HorizontalAlignment”/“VerticalAlignment”设置为“Stretch”,在这种情况下它会拉伸(stretch)到可用的尺寸方向。
ViewBox是一个更复杂的例子,很好地利用了“availableSize”。它通常根据可用空间调整自身大小,并根据“Stretch”和“StretchDirection”的值缩放/拉伸(stretch)其子项。
关于c# - 为什么 MeasureOverride 会收到 availableSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23574264/
如果父控件询问其子控件“你想要多大?”,那么传递的 availableSize 参数有什么用?我已经通过 Reflector 查看了 StackPanel 的源代码,但我仍然无法理解。 如果child
protected override Size MeasureOverride(Size availableSize) { foreach (UIElement child i
我从处理 WPF 中的 Panel 子类化和实现他们自己的布局工作以及为传递给 availableSize arg 中的 MeasureOverride 的维度获取 Infinity 或 Positi
我是一名优秀的程序员,十分优秀!