UIElement.DesiredSize 属性

定义

获取在布局流程的度量传递过程中此元素计算所得的大小。

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 在实现布局行为替代(如 ArrangeOverrideMeasureOverrideOnRender (OnRender )时,通常检查为度量因素之一,在这种情况下,可以改为检查 RenderSize ,但这取决于实现) 。 根据方案, DesiredSize 实现逻辑可能完全遵循,对 的约束 DesiredSize 可能会应用,并且此类约束也可能更改父元素或子元素的其他特征。 例如,支持可滚动区域的控件 (但选择不从已启用可滚动区域的 WPF 框架级控件派生,) 可以将可用大小与 DesiredSize进行比较。 然后,控件可以设置内部状态,以便在 UI 中为该控件启用滚动条。 或者, DesiredSize 在某些情况下,也可能被忽略。

适用于

另请参阅