UIElement.DesiredSize UIElement.DesiredSize UIElement.DesiredSize UIElement.DesiredSize Property

定義

レイアウト処理の測定パスの実行中に、この要素が計算したサイズを取得します。Gets the size that this element computed during the measure pass of the layout process.

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

プロパティ値

計算されたサイズ。これが、配置パスの目的のサイズになります。The computed size, which becomes the desired size for the arrange pass.

次の例はDesiredSizeMeasureOverride実装の一部としてを示しています。The following example shows DesiredSize as part of a MeasureOverride implementation. を取得DesiredSizeする直前にが呼び出されることに注意してください。MeasureNotice how Measure is called immediately prior to obtaining DesiredSize. これによりDesiredSize 、は正当な値を保持することが保証されます。This assures that DesiredSize holds a legitimate value.

    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

注釈

このプロパティによって返される値は、 IsMeasureValidプロパティの値がtrueの場合にのみ有効な測定値になります。The value returned by this property will only be a valid measurement if the value of the IsMeasureValid property is true.

DesiredSizeArrangeOverrideは、通常、、 MeasureOverride OnRender 、などのレイアウトRenderSize動作のオーバーライドを実装するときに、測定要因の1つとしてチェックされます (その場合は、代わりにを確認することができますが、これはOnRender実装)。DesiredSize is typically checked as one of the measurement factors when you implement layout behavior overrides such as ArrangeOverride, MeasureOverride, or OnRender (in the OnRender case, you might check RenderSize instead, but this depends on your implementation). シナリオによってはDesiredSize 、実装ロジックによって完全に尊重されるDesiredSizeことがあり、に対する制約が適用され、そのような制約によって、親要素または子要素のその他の特性も変更される可能性があります。Depending on the scenario, DesiredSize might be fully respected by your implementation logic, constraints on DesiredSize might be applied, and such constraints might also change other characteristics of either the parent element or child element. たとえば、スクロール可能な領域をサポートするコントロール (ただし、スクロール可能な領域が既に有効になっている WPF フレームワークレベルのコントロールから派生しDesiredSizeないことを選択したコントロール) は、使用可能なサイズをと比較できます。For example, a control that supports scrollable regions (but chooses not to derive from the WPF framework-level controls that already enable scrollable regions) could compare available size to DesiredSize. コントロールは、 UIUIそのコントロールのでスクロールバーを有効にした内部状態を設定できます。The control could then set an internal state that enabled scrollbars in the UIUI for that control. また、 DesiredSize場合によっては、特定のシナリオでは無視される可能性もあります。Or, DesiredSize could potentially also be ignored in certain scenarios.

適用対象

こちらもご覧ください