次の方法で共有


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 つの子要素があるレイアウト コンテナーがあるとします。 最初のオブジェクトが新しいレイアウトを強制するプロパティを変更すると、両方のオブジェクトが LayoutUpdated を発生させます。これは、2 番目のオブジェクトが、独自の補助レイアウトが変更されない場合でも再配置される可能性があるためです。

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

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

適用対象

こちらもご覧ください