2009-08-31 11 views
1

グラフ#に付属するグラフ描画コントロールを改善しようとしています。それは良いことですが、あなたがノードをドラッグし始めると、手が届かなくなります。これはWPFとの最初の出会いです。だからこれはおそらく初心者の質問です。 :)WPF ScrollViewerを再利用してスクロール可能なコントロールを作成する方法はありますか?

私はノードとエッジを持つGraphCanvasコントロールを持っています。それらは、その座標を変更するためにドラッグすることができ、恐らくそれらを負にします。私はスクロールバーをコントロールに追加して、キャンバスの実際の大きさを確認したいと考えています。

この目的のために、私はGraphCanvasをScrollViewerの中に置くことを考えています。 1つの問題ではないなら、かなり簡単で簡単です。私はノードが境界線の外にドラッグされたときにGraphCanvas自体のサイズを変更しないかもしれません。それも元のコントロールの問題です(チェックアウト、サンプルアプリケーションが付属しています)。

スクロールバーのサイズ/位置をGraphCanvasのプロパティにバインドして、ScrollViewerが物理的に何もスクロールせず、GraphCanvasのプロパティを設定できるようにするとよいでしょう。これは、実際にはすべての計算とスクロールを実行します。

どうすればいいですか?

答えて

0

このリンクをMSDNから直接チェックしてください。それは、単一の複合コントロールに複数のコントロールを構成について語る:

WPF: Customizing Controls for Windows Presentation Foundation

+0

しかし、私の貴重なGraphCanvasをスクロールせずにスクロールバーを直接制御するにはどうすればよいですか? –

+0

コンポジットの外にスクロールバーを設定するのではなく、スクロールバーの境界をコントロールします。 –

1

OK、私はそれを見つけました! 3つの簡単なステップ:

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

Voila!

関連する問題