2011-11-12 4 views
-2

ItemsControlのMeasure/Arrangeレイアウトパスを、ユーザーの介入なしにコードビハインドで手動でトリガーしたいと考えています。出来ますか?はいの場合、どのように?私はInvalidateMeasure()UpdateLayout()を試しましたが、使用しません。WPFのレイアウトシステム

+0

あなたの本当の問題は何ですか?なぜあなたはレイアウト管理をトリガする必要がありますか? – Vlad

答えて

1

は再レンダリング呼び出すためにInvalidateVisualメソッドを使用します。

は、要素のレンダリングを無効にして、完全に新しい レイアウトパスを強制します。 OnRenderは、レイアウトサイクルが完了した後に呼び出されます。

ただし、これはアプリケーションで手動ではほとんど使用しないことが推奨されているため、問題を解決する可能性があります(たとえば、依存関係プロパティの適切な使用など)。

+0

これでも動作しません。このメソッドを呼び出す場所はどこですか? ItemsControlまたはItemsPanelからですか? –

+2

"not working"を定義してください。何が起こるのですか?何が起こりませんか?何が起こると思いますか? –

+0

私のコントロールのItemsPanel(私のカスタムパネルと言う)のMeasure Overrideにブレークポイントがあります。そして私はあなたがItemsControlとItemsPanelの両方で言ったようにメソッドを試しています。しかし、ブレークポイントはヒットしません。 –