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.

次の例はDesiredSizeの一部として、MeasureOverride実装します。The following example shows DesiredSize as part of a MeasureOverride implementation. 通知方法Measureを取得するには、直前に呼び出されますがDesiredSizeします。Notice 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.

DesiredSize などのレイアウト動作を実装するときに測定要因の 1 つオーバーライドと、通常、チェックArrangeOverrideMeasureOverride、またはOnRender(で、OnRender場合、チェックする可能性がありますRenderSize代わりに、これによって異なりますが、実装の場合)。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.

適用対象

こちらもご覧ください