1

Graph# に付属のグラフ描画コントロールを改善しようとしています。それは良いことですが、ノードをドラッグし始めると、手に負えなくなります。これは WPF との初めての出会いなので、おそらく初心者の質問です。:)

ノードとエッジを持つ GraphCanvas コントロールがあります。それらをドラッグして座標を変更すると、負になる可能性があります。コントロールにスクロールバーを追加して、キャンバスの実際の大きさを確認したいと思います。

この目的のために、GraphCanvas を ScrollViewer 内に配置することを考えています。1つの問題がなければ、これは非常に簡単で簡単です。ノードが境界線の外側にドラッグされた場合、GraphCanvas 自体のサイズを変更できない場合があります。そうしないと、ドラッグがうまくいかなくなります。これは、元のコントロールの問題でもあります (チェックしてください。サンプル アプリケーションが付属しています)。

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

これはどのように行うことができますか?

4

2 に答える 2

1

わかりました、見つけました!3 つの簡単な手順:

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

出来上がり!

于 2009-08-31T14:39:54.727 に答える
0

MSDN から直接このリンクをチェックしてください。複数のコントロールを単一の Composite Control に構成する方法について説明します。

WPF: Windows Presentation Foundation のコントロールのカスタマイズ

于 2009-08-31T13:24:25.987 に答える