0

スクロール ビューアを提供するカスタム テンプレートを使用して、ItemsControl の ItemsPanel としてカスタム パネルを使用しています。(以下の Xaml を参照してください。) 私のパネルが IScrollInfo を実装していない限り、このシーンではスクロールが機能します。

IScrollInfo を実装し、メジャー オーバーライドでビューポートと範囲のサイズを更新します。スクロール バーには正しい相対的なサイズが表示され、IScrollInfo メソッドを直接呼び出すと、スクロールは期待どおりに機能します。ただし、ドラッグとフリックのジェスチャでコンテンツがスクロールされなくなりました。すべての IScrollInfo メソッドの入力にブレークポイントを配置すると、ドラッグ アンド ピックがインターフェイスを呼び出していないことがわかります。IScrollInfo インターフェイス宣言を削除すると、ドラッグおよびフリック時のスクロール動作が復元されます。

IScrollInfo を実装するパネルを使用して、フリックとパンのジェスチャを ItemControls に復元する簡単な方法はありますか?

4

1 に答える 1

2

MSFT フォーラムのモデレーターである Eric Sink から残念な回答がありました。

IScrollInfo から継承すると、パネルがすべてのスクロール機能を引き継ぎますが、マーティンが述べたように、内部インターフェイスを使用してフリック アニメーションを制御します。オブジェクトはこのインターフェイスを継承しないため、基になるコードはこの機能をバイパスします。

OnManipulation* イベントをオーバーライドして、独自のストーリーボード アニメーションをセットアップできるはずです。

IScrollInfo を実行したい場合は、自分で操作する必要があるようです。

于 2010-08-10T04:32:43.997 に答える