UIElement.DesiredSize 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public:
property Size DesiredSize { Size get(); };
Size DesiredSize();
public Size DesiredSize { get; }
var size = uIElement.desiredSize;
Public ReadOnly Property DesiredSize As Size
屬性值
此 UIElement 在版面配置程式的量值階段計算的大小。
範例
本範例會查詢 DesiredSize 作為 ArrangeOverride 實作子反復專案的一部分。
// Second arrange all children and return final size of panel
protected override Size ArrangeOverride(Size finalSize)
{
// Get the collection of children
UIElementCollection mychildren = Children;
// Get total number of children
int count = mychildren.Count;
// Arrange children
// We're only allowing 9 children in this panel. More children will get a 0x0 layout slot.
int i;
for (i = 0; i < 9; i++)
{
// Get (left, top) origin point for the element in the 3x3 block
Point cellOrigin = GetOrigin(i, 3, new Size(100, 100));
// Arrange child
// Get desired height and width. This will not be larger than 100x100 as set in MeasureOverride.
double dw = mychildren[i].DesiredSize.Width;
double dh = mychildren[i].DesiredSize.Height;
mychildren[i].Arrange(new Rect(cellOrigin.X, cellOrigin.Y, dw, dh));
}
// Give the remaining children a 0x0 layout slot
for (i = 9; i < count; i++)
{
mychildren[i].Arrange(new Rect(0, 0, 0, 0));
}
// Return final size of the panel
return new Size(300, 300);
}
備註
當您實作 ArrangeOverride 或 MeasureOverride等配置行為覆寫時,DesiredSize 通常會檢查為其中一個度量因素。 視父容器的配置邏輯而定,DesiredSize 可能完全受到遵守、DesiredSize 的條件約束可能會套用,而這類條件約束也可能變更父元素或子項目的其他特性。 例如,支援可捲動區域的控制項 (,但選擇不要衍生自已經啟用可捲動區域的控制項,) 可以比較可用的大小與 DesiredSize。 然後,控制項可以設定內部狀態,讓該控制項在 UI 中啟用捲軸。 或者,可以忽略 DesiredSize,而且元素一律會取得依其他考慮調整大小的版面配置,例如檢查附加屬性值。
DesiredSize 不會包含有用的值,除非至少有一個配置傳遞已在 元素上執行。
DesiredSize 實際上只適用于當您定義自己的版面配置覆寫方法時使用。 如果您只想在執行時間對應用程式 UI 中的元素大小感興趣,您應該改用 ActualWidth 和 ActualHeight 屬性。 如果元素受到動態版面配置技術的影響,例如star網格線儲存格的大小調整,您可能會以這種方式檢查大小。 只有在配置執行之後,才依賴 ActualWidth 和 ActualHeight 值:例如,在 Loaded 事件中,或由使用者動作觸發,這些動作只有在 UI 一開始轉譯之後才可能。
適用於
另請參閱
- ArrangeOverride(Size)
- MeasureOverride(Size)
- Arrange(Rect)
- <xref:Microsoft.UI.Xaml.UIElement.Measure(Windows.Foundation.Size)%0a>
- Measure(Size)