1

TreeViewでグラフを作成しています。以下はスクリーンショットです。これまでのところ、すべてがスタイリングで行われています。TreeViewのItemsPanelを水平StackPanelに設定しています。 (ペーパークリップは、画像のないアイテムの単なるプレースホルダーです。)

ツリービューグラフのスクリーンショット

最下位レベルの子がLeavesであることに注意してください。彼らには子供がいません。

ここに質問があります:私はそれらのアイテムを別のWrapPanelに入れたいです。問題は、アイテムに明らかに子供がいる子供と子供がいない子供(枝と葉)が含まれる可能性があることです。ItemsPanelはStackPanelである必要があるため、水平方向のレイアウトが適切になります。ただし、StackPanelの最後のコントロールは、すべての子のない子を持つWrapPanelである必要があります。

これは、WrapPanelで葉を表示するためにつなぎ合わせたスクリーンショットです。

ラップパネル付きのツリービューのスクリーンショット

私が試したこと

独自のアイテムパネルコンバーターを作成しようとしましたが、アイテムパネル全体がラップパネルに変換されます。

別のツリービューをItemTemplateに追加し、それを別のコレクションにバインドしようとしましたが、それは正しい外観ではありません。

私が試したことのないもの

私が話しているWrapPanelは、ほとんどブランチのようなものです。ただし、ブランチ自体は空ですが、子が含まれています。たぶん、プロパティに基づいてノードのスタイルを変更することができます。次に、画像などを表示する代わりに、データテンプレートはWrapPanelになります

4

1 に答える 1

0

私はそれを考え出した。

  1. 階層データ セットをループして、いくつかの変更を加えました。枝ごとに、葉を取り除き、新しいノードに追加しました。次に、ノードをブランチに追加します。それは一種のプレースホルダーを作成します。

  2. このノードには、「IsLeafCollection」というプロパティが含まれています。それぞれの子に子がないことを確認するだけです。

  3. IsLeafCollection にバインドするデータ トリガーがあります。true の場合、アイテム パネルをラップ パネルに変更します。

以下は最終結果のスクリーンショットです。

ツリー ビューのスクリーン ショット

于 2013-02-27T20:25:00.993 に答える