C#WinForms(企業階層)で大規模でインタラクティブなツリー構造を描画する必要があります。
おそらく非常に複雑になる可能性のあるツリー内のブロックを配置するアルゴリズムを除けば、実際のキャンバスと描画コードを実装する方法についてはよくわかりません。
一見すると、巨大な画像(または大きな画像のマトリックス)を作成し、Graphics
またはを使用BufferedGraphics
して、ユーザーがズームインする場所に指定された小さな領域をレンダリングできます。これにより、Googleマップで見られるズームとパンの効果が得られます。
双方向性に関しては、ここで何ができるでしょうか?ユーザーが特定の人(特定のコストセンターの人、請負業者である人など)を強調できるようにしたいと思います。また、ユーザーがズームインするにつれて、ツリーにスタッフに関するより多くの情報が徐々に表示されると、かなりクールになります。イベントでヒットテストを行いMouseMove
、キャンバス上の画像を構成するものをプログラムで追加/削除/変更する必要がありますか?
これは、GDIを使用したり、代わりにDirectDrawを使用したりすることを避けるべきものですか?やり過ぎたくない-構造を視覚的に表現し、ユーザーにそれを印刷するオプションを提供できるようにしたいだけです。
または、インタラクティブ機能を使用してズームとパンを実行できる(フリーウェア?)ライブラリはありますか?少し質問があるかもしれませんが、ツリー構造も処理できるものでしょうか。
私は個々のコンセプトを小規模に経験したことがありますが、このような大きな構造にまとめられたものはありません。私が何か間違ったことをすると、それは非常に遅く、遅れ、そして記憶を奪う何かに変わる可能性があると私は予測しています。
私はWPFに手を出しただけです。私はほぼ独占的に.NetでWinFormsを使用しています-このタスクを大幅に簡単にするWPFに何かありますか?