UIElement.UpdateLayout 方法

定義

確保 UIElement 子物件的所有位置都已針對版面配置正確更新。

public:
 virtual void UpdateLayout() = UpdateLayout;
void UpdateLayout();
public void UpdateLayout();
function updateLayout()
Public Sub UpdateLayout ()

備註

UpdateLayout 基本上相當於依序呼叫 InvalidateMeasureInvalidateArrange

版面配置更新可由應用程式程式碼強制,而不是使用 UpdateLayout 方法依賴內建版面配置系統行為。 不過,通常不建議這麼做。 通常不需要,而且如果過度使用,可能會導致效能不佳。 在許多情況下,從應用程式程式碼呼叫 UpdateLayout 可能會因屬性變更而適用,配置系統可能已經處理更新。 版面配置系統也有透過父子式關聯性處理版面配置變更串聯的優化,而且呼叫 UpdateLayout 可以針對這類優化運作。 不過,在呼叫 UpdateLayout 是解決計時問題或其他配置問題的最佳選項的情況下,可能會有配置情況。 只要刻意且謹慎地使用它即可。 在您需要呼叫 UpdateLayout 的情況下,您可能會在呼叫 Children.Add 一般版面配置父代的某些子項目集合之後呼叫它,然後在該父代上呼叫 UpdateLayout,讓配置系統辨識新的新增子系。

UpdateLayout 的其中一個案例是當您有RichTextBlock 和 RichTextBlockOverflow之類的連結容器時,您已對內容進行執行時間變更,而且您想要確定未特別系結的作業不會特別系結至顯示 UI,而有機會執行版面配置,並觸發連結容器之間的內容重新平衡。 例如,您可能想要這麼做來準備列印的版面配置。 如需此案例的範例,請參閱 列印範例中的 #5 案例。

提示

如果您有使用資料系結至 UI 且未看到版面配置反映資料來源集合中的更新的案例,則呼叫 UpdateLayout 可能沒有説明。 您更可能發生系結宣告、資料內容或 資料來源中 INotifyPropertyChangedINotifyCollectionChanged 支援的問題。

適用於

另請參閱