UIElement.DesiredSize 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取在布局流程的度量传递过程中此元素计算所得的大小。
public:
property System::Windows::Size DesiredSize { System::Windows::Size get(); };
public System.Windows.Size DesiredSize { get; }
member this.DesiredSize : System.Windows.Size
Public ReadOnly Property DesiredSize As Size
属性值
计算所得大小,它将成为排列过程所需的大小。
示例
以下示例演示 DesiredSize 为实现的一 MeasureOverride 部分。 请注意在获取 DesiredSize之前如何Measure立即调用 。 这可确保 具有 DesiredSize 合法价值。
virtual Size MeasureOverride(Size availableSize) override
{
Size^ panelDesiredSize = gcnew Size();
// In our example, we just have one child.
// Report that our panel requires just the size of its only child.
for each (UIElement^ child in InternalChildren)
{
child->Measure(availableSize);
panelDesiredSize = child->DesiredSize;
}
return *panelDesiredSize ;
}
protected override Size MeasureOverride(Size availableSize)
{
Size panelDesiredSize = new Size();
// In our example, we just have one child.
// Report that our panel requires just the size of its only child.
foreach (UIElement child in InternalChildren)
{
child.Measure(availableSize);
panelDesiredSize = child.DesiredSize;
}
return panelDesiredSize ;
}
Protected Overrides Function MeasureOverride(ByVal availableSize As System.Windows.Size) As System.Windows.Size
Dim panelDesiredSize As Size = New Size()
' In our example, we just have one child.
' Report that our panel requires just the size of its only child.
For Each child As UIElement In InternalChildren
child.Measure(availableSize)
panelDesiredSize = child.DesiredSize
Next
Return panelDesiredSize
End Function
注解
如果此属性的值为 ,则此属性返回的值IsMeasureValidtrue
将仅是有效的度量值。
DesiredSize 在实现布局行为替代(如 ArrangeOverride、 MeasureOverride或 OnRender (OnRender )时,通常检查为度量因素之一,在这种情况下,可以改为检查 RenderSize ,但这取决于实现) 。 根据方案, DesiredSize 实现逻辑可能完全遵循,对 的约束 DesiredSize 可能会应用,并且此类约束也可能更改父元素或子元素的其他特征。 例如,支持可滚动区域的控件 (但选择不从已启用可滚动区域的 WPF 框架级控件派生,) 可以将可用大小与 DesiredSize进行比较。 然后,控件可以设置内部状态,以便在 UI 中为该控件启用滚动条。 或者, DesiredSize 在某些情况下,也可能被忽略。