UIElement.DesiredSize 属性

定义

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

public System.Windows.Size DesiredSize { get; }

属性值

计算所得大小,它将成为排列过程所需的大小。

示例

以下示例演示 DesiredSize 为实现的一 MeasureOverride 部分。 请注意在获取 DesiredSize之前如何Measure立即调用 。 这可确保 具有 DesiredSize 合法价值。

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 ;
}

注解

如果此属性的值为 ,则此属性返回的值IsMeasureValidtrue将仅是有效的度量值。

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

适用于

产品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅