3

私はWPFで次のレイアウトを持っています

<grid>
<row height=auto>
<border>
<listbox>
<border?
</row>
<row height=*>
<othercontent>
</row>
</grid>

MVVM を使用し、リストボックス itemsource をバインドします。グリッドで wrapPanel を使用しており、スクロールを無効にしているため、グリッドの行の高さはリスト ボックスの内容に基づいて増減します。これはすべて正常に機能しています。

私が望むのは、リストボックス(またはそれを含む境界線、または自動高さを持つグリッド行)の拡大と縮小をアニメーション化できることです。どの要素を使用する必要がありますか?境界線の SizeChanged のトリガー?

また、ItemsSource が変更されたときに、リストボックスの項目をフェードアウトさせてから、サイズを変更してから、新しい項目をフェードインさせたいと思います。

どんな助けでも大歓迎です。ありがとう、クリス

4

1 に答える 1

0

独自の WrapPanel を作成する必要があると思います。おそらく、あなたが望むことを行うサードパーティのコントロールがすでに存在します。

これがどのように行われるかわかりません。しかし、カスタムラップパネル。サイズ変更時に、列に項目の余地があるかどうかを確認します。その場合、アイテムの位置をアニメートするストーリーボードを実行します。

Visual State Manager も参照してください。流動的なレイアウトを使用すると、アニメーション化されないものをアニメーション化できます。uielement をグリッド列から別の列に移動するようなものです。

これが役立つかどうかはわかりません。

于 2013-01-23T18:08:54.587 に答える