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 の 1 つのシナリオは、RichTextBlock や RichTextBlockOverflow などのリンクされたコンテナーがある場合に、コンテンツに対して実行時の変更を行い、UI の表示に特に関連付けられていない操作で、レイアウトを実行し、リンクされたコンテナー間でコンテンツの再調整をトリガーできるようにする必要がある場合です。 たとえば、印刷用のレイアウトを準備するためにこれを行うとします。 このシナリオの例については、 印刷サンプルの #5 シナリオを参照してください。
Tip
UI へのデータ バインディングを使用するシナリオがあり、レイアウトにデータ ソース コレクションの更新が反映されていない場合は、UpdateLayout を呼び出しても役に立たない可能性があります。 バインディング宣言、データ コンテキスト、またはデータ ソースでの INotifyPropertyChanged または INotifyCollectionChanged のサポートに問題がある可能性が高くなります。