この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

UIElement.DesiredSize プロパティ

 

公開日: 2016年10月

レイアウト処理の測定パスの実行中に、この要素が計算したサイズを取得します。

名前空間:   System.Windows
アセンブリ:  PresentationCore (PresentationCore.dll 内)

public Size DesiredSize { get; }

プロパティ値

Type: System.Windows.Size

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

The value returned by this property will only be a valid measurement if the value of the P:System.Windows.UIElement.IsMeasureValid property is true.

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). 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. 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. The control could then set an internal state that enabled scrollbars in the UI for that control. Or, DesiredSize could potentially also be ignored in certain scenarios.

The following example shows P:System.Windows.UIElement.DesiredSize as part of a M:System.Windows.FrameworkElement.MeasureOverride(System.Windows.Size) implementation. Notice how M:System.Windows.UIElement.Measure(System.Windows.Size) is called immediately prior to obtaining P:System.Windows.UIElement.DesiredSize. This assures that P:System.Windows.UIElement.DesiredSize holds a legitimate value.

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

.NET Framework
3.0 以降で使用可能
Silverlight
2.0 以降で使用可能
Windows Phone Silverlight
7.0 以降で使用可能
トップに戻る
表示: