問題タブ [measureoverride]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - double.PositiveInfinity WPF でコントロールを測定する
カスタムパネルを持つカスタムコントロールに取り組んでおり、カスタムパネル内には、サイズを子メソッドMeasureOverride
に渡す小さくて単純なメソッドがあります。カスタム パネルがレイアウトを処理し、ウィンドウ サイズに応じて子を大きくまたは小さくする必要があります。double.PositiveInfinity
MeasureOverride
コントロールを扱ったことがある場合は、wpf レイアウト システムの仕組みと、基本的にすべての子が子の子の MeasureOverride を呼び出す MeasureOverride などを呼び出すことを知っておく必要があります。
ここでの問題は、ウィンドウのサイズを変更すると、カスタムパネルが再度測定を行うためのフラグを受け取るため、再度MeasureOverride
呼び出されることですが、今回はdouble.PositiveInfitinty
サイズを子に渡すときに、子MeasureOverride
がまったく呼び出されないことです。 (ただし、メソッドは WPF レイアウト システムの定義に従って呼び出す必要があります)。どうしてこんなことに?MeasureOverride
親に電話すると、子供たちも対策を迫られるのではないかといつも思っていました。
明らかに私は間違っているので、誰かがコントロール/子供がいつ再測定するかをどのように知っているか説明してもらえますか?
ちなみに、私はdouble.PositiveInfinity
子供たちに のサイズを渡して、必要なだけスペースを取るように伝えています。
コード:
コードは簡単です。子供たちが再び測定されない理由がわかりません。コードでスペルミスがあった場合は申し訳ありません。
wpf - WPF - コンテンツに合わせたカスタム パネル サイズ
私のパネルは UniformGrid と同様のことをしようとします。ItemContainerWidth (40.0) および ItemContainerHeight (20.0) 依存プロパティに加えて、ColumnNumber プロパティがあります。
パネルのサイズを content に合わせたい。
私のメジャーオーバーライド:
私のアレンジオーバーライド:
私のパネルの ActualWidth と Height は finalSize に等しいです。パネルのサイズを MeasureOvride (constraint) から返されたものにしたいと思います。
これを強制すると、パネルが画面上で別の場所に配置されます。パネルのサイズを、WrapPanel や StackPanel などのコンテンツに合わせて調整したいだけです。
最終サイズで
テスト目的で制約サイズ (100,100) を使用
パネルの私の使用: XAML:
wpf - 子のプロパティの変更時に MeasureOverride が常に呼び出されるとは限らない
組み込みの StackPanel に似たパネルを作成しました。わずかな問題を除いて、ほとんど問題なく動作します。
子のレイアウト プロパティを変更しても、常にパネルの MeasureOverride と ArrangeOverride が呼び出されるとは限りません。子の Visibility プロパティが変更された場合は常に呼び出されますが、Width プロパティと Height プロパティが変更された場合は呼び出されません。
StackOverflow の質問に含めるのに十分なほど小さいサンプルでこの動作を再現することはまだできていません。 .
私の質問: サイズ関連のプロパティを変更するときに、要素がその親の測定値を無効にしないのはどのような状況ですか?
この wpf にもタグを付けて (私は Silverlight を使用しました)、より多くのユーザーを対象としています。これは、両方の xaml 実装に等しく適用されると思います。
wpf - ArrangeOverride が最終的なサイズを再計算するのはなぜですか
私にとっては、 MeasureOverrideがFrameworkElementのサイズを計算し、ArrangeOverrideが子要素を配置するだけであれば論理的です。ただし、ArrangeOverrideは子要素を配置するだけではありません。また、理解できないFrameworkElementのサイズも再度計算します。MeasureOverrideが最終的なサイズを計算できないのはなぜですか?