UIElement.OnChildDesiredSizeChanged(UIElement) メソッド


子要素のサイズが変更されるときのレイアウト動作をサポートします。Supports layout behavior when a child element is resized.

 virtual void OnChildDesiredSizeChanged(System::Windows::UIElement ^ child);
protected virtual void OnChildDesiredSizeChanged (System.Windows.UIElement child);
abstract member OnChildDesiredSizeChanged : System.Windows.UIElement -> unit
override this.OnChildDesiredSizeChanged : System.Windows.UIElement -> unit
Protected Overridable Sub OnChildDesiredSizeChanged (child As UIElement)



サイズが変更される子要素。The child element that is being resized.


通常、このメソッドはアプリケーションコードによって呼び出されません。This method is typically not called by your application code. これは、派生要素クラスが、実際には無効なレイアウト状態をさらにチェックできるように公開されています。It is exposed so that derived element classes can make further checks on their own possibly invalid layout state. また、子要素のサイズ変更に基づいて、レイアウトパスの処理時間を最小限に抑えるために、最適化を試行することもできます。Classes could also attempt optimizations to minimize the processing time for a layout pass based on size changes to child elements. を実装する派生要素クラスの例 OnChildDesiredSizeChanged は、 Grid コントロールです。An example derived element class that implements OnChildDesiredSizeChanged is the Grid control.

注意 (継承者)

OnChildDesiredSizeChanged(UIElement)メソッドには、それ自体でを呼び出すための既定の実装があり InvalidateMeasure() ます。The OnChildDesiredSizeChanged(UIElement) method has the default implementation of calling InvalidateMeasure() on itself. 一般的な実装は次のようになります。独自の要素でサポートされる最適化を実行し、通常は少なくとも OnChildDesiredSizeChanged(UIElement) 1 つのコード分岐から base を呼び出します (独自のメジャーキャッシュロジックによって "ダーティ" 状態を示したもの)。A typical implementation would be: do whatever optimization your own element supports, and then typically call base OnChildDesiredSizeChanged(UIElement) from at least one of the code branches (the one that indicated "dirty" state per your own measure caching logic).

このメソッドは、サイズ変更の元となった子である場合にのみ、レイアウト処理で呼び出されます。This method is only called in the layout processing if it was the child itself that originated the size changes. それ以外の場合、親要素に Measure(Size) よってパスが開始されると、レイアウトシステムの規則に従って、親はレイアウトを既に再計算しています。Otherwise, if the parent element initiates the Measure(Size) pass, according to the layout system rules, the parent is recalculating layout already. レイアウトシステムは、親子の順序でレイアウトを処理するので、子要素のレイアウト呼び出しからの親要素のサイズ変更は必要ありません。The layout system processes layout in the order of child-to-parent, so no return to parent element sizing from the child element layout calls is necessary.