データソースで自分のコントロールを構築したいと思います。このコントロールは単純なバイナリツリーを描画する必要があります:-)wpfでツリー/グラフを描画しますか? [キャンバスを使うか何か?]
私は描画ベースとして何を使用しますか?キャンバスを使うべきか、onRender()のようなペイントイベントメソッドをオーバーライドすべきですか?
ノードはある種のユーザーコントロールでなければなりません。
ありがとうございます。
データソースで自分のコントロールを構築したいと思います。このコントロールは単純なバイナリツリーを描画する必要があります:-)wpfでツリー/グラフを描画しますか? [キャンバスを使うか何か?]
私は描画ベースとして何を使用しますか?キャンバスを使うべきか、onRender()のようなペイントイベントメソッドをオーバーライドすべきですか?
ノードはある種のユーザーコントロールでなければなりません。
ありがとうございます。
コンテナを選択するには、必要な機能を使用する必要があります。 絶対配置が必要なときにキャンバスを使用します。
ただし、コントロールはItemsControlであり、ItemsPanelでCanvasを使用できます。結局のところ、キャンバスは単に表示/配置するためのものです。
ItemsControlTemplateを使用して、ノードのDataTemplateを設定できます。
はおそらく、あなたがしなければならないすべては、TreeViewコントロールのテンプレートを作成し、配置パスをオーバーライドするために、TreeViewコントロールをサブクラスであるhierarchical datatemplates at the end of this article
を見てください。
またはい、あなたはそれを行うが、あなたのコードは、現在のテンプレートで(特定の名前を持つ)キャンバスのexistanceに依存していることを認識することができthis approach by Josh Smith
から学ぶことができます。つまり、デザイナーは単にテンプレートを置き換えることはできません。 –
私のコントロールテンプレートでは、私はキャンバスを配置し、私はいくつかのcontentpresentersを配置し、いくつかの行を表示するためにこのキャンバスを使用します。 私もdatasourceプロパティを持っています...しかし、私はどのようにジェネリックプロパティを構築できますか? 同じタイプのオブジェクトをメンバーとして持つリストを持つ任意のオブジェクトでツリーを構築できます。 クラスの人{ list childs; } は、私は私のコントロールがツリーデータソースを検出し、木を描くことをたいと思います...私はいけない 私は何をすべき...データソースのいずれかのタイプを使用するか、またはインターフェイスを紹介したいと思いますか? – user547064
私は私の答えに追加しました。私の推測では、単純にTreeViewコントロールのサブクラスを作成することができます。 –