UIElement.DesiredSize 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得這個項目在版面配置處理序的測量傳遞期間所計算的大小。
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
屬性值
成為排列傳遞所需大小的計算大小。
範例
下列範例示範 DesiredSize 為 實作的一 MeasureOverride 部分。 請注意在取得 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
備註
此屬性所傳回的值只有在 屬性值為 true
時 IsMeasureValid ,才會是有效的度量。
DesiredSize 當您實作版面配置行為覆寫,例如 ArrangeOverride 、 MeasureOverride 或 OnRender (OnRender 時,通常會檢查為其中一個度量因素,但可能會改為檢查 RenderSize ,但這取決於您的實作) 。 視案例而定, DesiredSize 您的實作邏輯可能會完全遵守條件約束、套用的條件約束,而這類條件 DesiredSize 約束也可能變更父元素或子項目的其他特性。 例如,支援可捲動區域的控制項 (,但選擇不要衍生自已經啟用可捲動區域的 WPF 架構層級控制項,) 可以比較可用的大小與 DesiredSize 。 然後,控制項可以設定內部狀態,以在該控制項的 UI 中啟用捲軸。 或者, DesiredSize 在某些情況下可能也會忽略。