2009-08-31 22 views
2

this questionを聞いてから、おそらくもっと一般的な質問をしていたはずです。だから、ここに行く:WPFでカスタムコントロールにスクロールバーを追加するには?

私はカスタムパネル由来のコントロールを作成しています。そのコントロールのために、私は水平と垂直のスクロールバーを追加して自分でコントロールしたいと思っています(&最小/最大/値/ページサイズを設定してください)。これどうやってするの?

これは私のWPFとの最初の遭遇で、まだテンプレートとスタイルに精通していないので、答えがそこにあるか他の場所にあるかわかりません。

答えて

2

はい。答えはパネルにではなく、ScrollViewerです。あなたのパネルはスクロールバーを気にしないでください。 ScrollViewerがあなたのパネルを測定し、配置しましょう。だからあなたのビジュアルツリーがあなたのパネル、その後、最初のScrollViewerのが含まれます:あなたがScrollViewerのを制御したい場合は

<ScrollViewer> 
     <cc:YourPanel/> 
    </ScrollViewer> 

、あなたはおそらくそれを継承するか、そのテンプレートをカスタマイズするためにどちらかになるでしょう。

+0

問題は - 私のコントロールが**サイズを変更しない**ことがあります。 ScrollViewerは、子コントロールのサイズをチェックすることに基づいています。 –

+0

こんにちはVilx、あなたはこの問題を解決しましたか?私はちょうど同じになっている.. –

2

OK、見つかりました。 3つの簡単なステップ:

  1. カスタムコントロールにSystem.Windows.Controls.Primitives.IScrollInfoを実装します。
  2. カスタムコントロールをScrollViewerに追加します。
  3. ScrollViewerCanContentScrollプロパティをTrueに設定します。

Voila!

関連する問題