UIElement.UpdateLayout 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
public:
virtual void UpdateLayout() = UpdateLayout;
void UpdateLayout();
public void UpdateLayout();
function updateLayout()
Public Sub UpdateLayout ()
備註
UpdateLayout 基本上相當於依序呼叫 InvalidateMeasure 和 InvalidateArrange 。
版面配置更新可由應用程式程式碼強制,而不是使用 UpdateLayout 方法依賴內建版面配置系統行為。 不過,通常不建議這麼做。 通常不需要,而且如果過度使用,可能會導致效能不佳。 在許多情況下,從應用程式程式碼呼叫 UpdateLayout 可能會因屬性變更而適用,配置系統可能已經處理更新。 版面配置系統也有透過父子式關聯性處理版面配置變更串聯的優化,而且呼叫 UpdateLayout 可以針對這類優化運作。 不過,在呼叫 UpdateLayout 是解決計時問題或其他配置問題的最佳選項的情況下,可能會有配置情況。 只要刻意且謹慎地使用它即可。 在您需要呼叫 UpdateLayout 的情況下,您可能會在呼叫 Children.Add
一般版面配置父代的某些子項目集合之後呼叫它,然後在該父代上呼叫 UpdateLayout,讓配置系統辨識新的新增子系。
UpdateLayout 的其中一個案例是當您有RichTextBlock 和 RichTextBlockOverflow之類的連結容器時,您已對內容進行執行時間變更,而且您想要確定未特別系結的作業不會特別系結至顯示 UI,而有機會執行版面配置,並觸發連結容器之間的內容重新平衡。 例如,您可能想要這麼做來準備列印的版面配置。 如需此案例的範例,請參閱 列印範例中的 #5 案例。
提示
如果您有使用資料系結至 UI 且未看到版面配置反映資料來源集合中的更新的案例,則呼叫 UpdateLayout 可能沒有説明。 您更可能發生系結宣告、資料內容或 資料來源中 INotifyPropertyChanged 或 INotifyCollectionChanged 支援的問題。