問題タブ [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 - アニメーション中またはアニメーション後に WPF InvalidateMeasure が呼び出されない
次の ListBoxItem スタイルのカスタム ListBox があります。マウスが上に置かれたときに ListBoxItem をスケーリングするためのいくつかのアニメーションが含まれています。
ListBoxItem がスケーリングされる前に MeasureOverride が呼び出されないことを除いて、呼び出される ListBox の MeasureOverride の独自の実装があるため、必要なサイズよりもはるかに小さいサイズが要求されます。
アニメーションの完了後に ListBox で InvalidateMeasure を呼び出してみましたが、MeasureOverride メソッドが起動されません。現在、ControlTemplate のグリッドにアニメーションを適用していますが、これが原因で MeasureOverride が呼び出されないのですか? コントロール自体に同じアニメーションを適用するにはどうすればよいですか?
wpf - MeasureOverride と ArrangeOverride をオーバーライドするときに WPF UserControl が描画されない
次のような UserControl があります。
最小/最大サイズの制約に加えて、コントロールを常に で塗りつぶしWidth = Height
ます。だから私はオーバーライドMeasureOverride
してArrangeOverride
:
UserControl のすべての子に対してMeasure
andを呼び出さなければならないことを理解しています。Arrange
DocPanel は UserControl の唯一の子であり、(私の理解では) UserControl のプロパティに格納されているため、この Content プロパティに対してandをContent
呼び出すだけです。ただし、UserControl は表示されません。私は何を間違っていますか?Measure
Arrange
wpf - WPF レイアウトは MeasureOverride を 2 ずつ繰り返し呼び出しますか?
カスタム パネル (パネルから継承) があり、それを ListView の ItemsPanel として使用している場合に遭遇しました。
コンテナーのサイズを変更するときに、サイズを小さくすると、パネルの MeasureOverride 関数が 1 回呼び出されますが、サイズを大きくすると (たとえば、100 から 300 に)、100 から 300 の間のすべての値に対して MeasureOverride と ArrangeOverride が呼び出されます。 、2 ずつ増加します (つまり、102、104 など)。
奇妙なことに、コンテナーのサイズがすぐに変更されます (そのサイズはすぐに 300 になります)。
MeasureOverride から何を返すかは問題ではないようです。これを行うだけです。
本当に小さなアプリケーションでそれを実現してここに投稿できればいいのにと思いますが、まだそのように再現できていません。ただし、アプリで一日中再現できます。
誰がこれを引き起こす可能性があるか知っていますか?
wpf - WPF C# カスタム コントロール -- 子を厳密なサイズに合わせる (伸ばす) 方法
どうすればいいのかわかりませんが、カスタム Panel を作成しましたFooPanel
。FooPanel で、すべての子がパネルによって事前に決定されたサイズ内に収まるように強制します (そのようにして、それらは均一になります)。私は知ってUniformGrid
いますが、他にもいくつかのものがあります。
どうすれば子どもたちを、私が言う枠に無理やり押し込めるかわかりません。
Child.xaml:
wpf - WPF でデータ バインディングを使用するコントロールのカスタマイズされた測定/配置アルゴリズム
カスタムエディタのアレンジ・計測アルゴリズムを書いています。エディターは、カスタムの UserControl 派生クラスをキャンバス上のコントロールとして使用します。これらのコントロールは、データ モデル オブジェクトのさまざまなプロパティ/リストにバインドされたデータです。カスタム コントロールの測定と配置は、バインドされるデータ (データがコントロールのサイズに影響するため) に大きく依存し、コントロールが測定および配置される順序にも依存します。MSDN の WPF ドキュメントから判断できたことから、データ バインディングは実際には実行されるまでは実行されません。コントロールが測定および配置され、コントロールがロード済みとしてマークされる直前。私が知る限り、これは、カスタム キャンバスを実際に測定して配置する前に、すべてのコントロールが読み込まれるのを待たなければならないことを意味します。その結果、キャンバスにフラグを設定して、いつ測定/配置できないかを判断し、このフラグを使用して無効化と再描画を強制する必要があります。私が知らないキャンバス上でカスタマイズされた測定/配置のためのより良い方法はありますか? WPF で早期データバインディングを強制する方法はありますか?
wpf - Panel.Children と Panel.InternalChildren - 違いは何ですか?
MSDN - Panel.InternalChildren プロパティによると:
Panelから派生したクラスは、 MeasureCore やArrangeCore などの内部オーバーライドにChildrenプロパティ ではなく、このプロパティを使用する必要があります。
したがって、これは実際には 2 つの部分からなる質問です。
FooPanel
から派生した独自の Panel を作成すると、またはPanel
をオーバーライドできないようです。なぜその声明がそこにあるのかさえわかりません。ただし、andをオーバーライドすることはできます。したがって、これら 2 つのメソッドにプロパティを使用する必要があるのでしょうか。MeasureCore
ArrangeCore
MeasureOverride
ArrangeOverride
InternalChildren
Children
プロパティとプロパティの本当の違いは何InternalChildren
ですか?
silverlight - SilverlightでMeasureOverrideをどのように使用しますか?
MeasureOverrrideがどのように機能するかは理解できたと思いますが、非常に単純なケースで使用しようとしていますが、機能しません...だから今はよくわかりません... Measureoverrideを使用した後、Arrageoverrideを使用する必要がありますかあまりにもまたはシステムは私のためにそれを行いますか?状況は次のとおりです。Panelから継承されたLinearLayoutクラスがあり、wrapwidhtとwrapheighという2つのフィールドがあります。これらがtrueの場合、LinearLayoutの幅または高さは子が必要とするものでなければなりません。したがって、私のMeasureoverideは次のようになります。
LinerLayoutに準拠している子は3つのボタンですが、何も描画されません。たとえ、panelDesiredSizeが正しくても、それがどのように機能するのか理解できなかったのかもしれません。誰かが私を助けることができればとてもいいでしょう:-)
layout - ArrangeOverride と Arrange() はいつレイアウト システムによって呼び出されますか?
Silverlightのレイアウト システムを理解しようとしていますが、そのプロセスがどのように機能するのかよくわかりません。Measure は常に前に呼び出され、すべての測定が完了すると開始されることを知っていarrange
ます。しかし、このプロセスは正確にいつ開始され、それを制御できるのでしょうか?
MSDN ライブラリへのリンクは書かないでください。私は既に読みましたが、まったくわかりません。
私の特定の状況は、ネストされた( andLinearLayouts
からクラスを継承して動作する) がいくつかありますが、サイズが必要であり(それらのサイズは親のパーセンテージであるため)、すべての要素がツリーにロードされるまで取得できません。ので、LayoutRoot_Loaded を呼び出します。はい、動作しますが、レイアウトプロセスを3回行うため、システム全体にとって効率的ではありません.レイアウトシステムをプログラマーが完全に管理する方法を誰かが助けたり、少なくとも説明したりできますか? :-)Panel
Arrangeoverride
MEasureoverride
rootcontainer
arrange()