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

プロパティ値

計算されたサイズ。これが、配置パスの目的のサイズになります。

次の例は、実装の一部としてをMeasureOverride示していますDesiredSize。 を取得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レイアウト動作のオーバーライドを実装する場合に、測定要因の 1 つとしてチェックされます (OnRender場合によっては、代わりにチェックRenderSizeすることもできますが、これは実装によって異なります)。 シナリオによっては、 DesiredSize が実装ロジックによって完全に尊重される場合があり、 に DesiredSize 制約が適用される可能性があります。また、そのような制約によって、親要素または子要素の他の特性も変更される可能性があります。 たとえば、スクロール可能な領域をサポートするコントロール (ただし、スクロール可能な領域を既に有効にしている WPF フレームワーク レベルのコントロールから派生しないことを選択) では、使用可能なサイズを と DesiredSize比較できます。 その後、コントロールは、そのコントロールの UI でスクロール バーを有効にする内部状態を設定できます。 または、 DesiredSize 特定のシナリオでも無視される可能性があります。

適用対象

こちらもご覧ください