FrameworkElement.LayoutUpdated イベント

定義

レイアウト関連のプロパティが値を変更したり、レイアウトを更新するその他のアクションが原因で、ビジュアル ツリーのレイアウトが変更されたときに発生します。

// Register
event_token LayoutUpdated(EventHandler<IInspectable> const& handler) const;

// Revoke with event_token
void LayoutUpdated(event_token const* cookie) const;

// Revoke with event_revoker
FrameworkElement::LayoutUpdated_revoker LayoutUpdated(auto_revoke_t, EventHandler<IInspectable> const& handler) const;
public event System.EventHandler<object> LayoutUpdated;
function onLayoutUpdated(eventArgs) { /* Your code */ }
frameworkElement.addEventListener("layoutupdated", onLayoutUpdated);
frameworkElement.removeEventListener("layoutupdated", onLayoutUpdated);
- or -
frameworkElement.onlayoutupdated = onLayoutUpdated;
Public Custom Event LayoutUpdated As EventHandler(Of Object) 
<frameworkElement LayoutUpdated="eventhandler"/>
 

イベントの種類

注釈

LayoutUpdated は、コントロールが対話する準備が整う前に XAML 読み込みシーケンスで発生する最後のオブジェクトの有効期間イベントです。 ただし、 LayoutUpdated は、プロパティの変更、ウィンドウのサイズ変更、ランタイム レイアウト要求 (UpdateLayout または変更されたコントロール テンプレート) など、さまざまな理由で、オブジェクトの有効期間中に実行時にも発生する可能性があります。 LayoutUpdated イベントは、レイアウト シーケンス内のすべての SizeChanged イベントが発生した後に発生します。

LayoutUpdated は、ハンドラーがアタッチされているオブジェクトが、その下のビジュアル ツリー内で必ずしも何も変更されない場合に発生する可能性があります。 たとえば、スペースを共有する 2 つの子要素があるレイアウト コンテナーがあるとします。 最初のオブジェクトが新しいレイアウトを強制するプロパティを変更した場合、2 番目のオブジェクトは独自の補助レイアウトが変更されない場合でも再配置される可能性があるため、両方のオブジェクトが LayoutUpdated を起動します。

LayoutUpdatedを処理するときは、送信者の値に依存しないでください。 LayoutUpdatedの場合、ハンドラーがアタッチされている場所に関係なく、送信者は常にnullされます。 これは、ハンドラーが 送信者に意味を割り当てないようにするためです。たとえば、ビジュアル ツリーからイベントを発生させる特定の要素であることを示しています。 LayoutUpdated は、ビジュアル ツリー全体の何かが変更され、ツリー内の任意の場所にある各特定のオブジェクトに、この発生を処理するオプションがあることを意味します。 下位レベルのレンダリング API の設計に慣れている場合は、オブジェクト駆動型の保持モードレンダリング ロジックの一部として設定されている "再描画が必要" フラグと同様に発生する LayoutUpdated と同じことができます。

LayoutUpdatedは多くの状況で発生し、実際に変更されるオブジェクトに固有であるとは限らないため、代わりに SizeChanged イベントを処理する方がシナリオに適しているかどうかを検討してください。

適用対象

こちらもご覧ください