2011-07-13 38 views
2

Telerik Winform TreeViewコントロールの展開/折りたたみアイコンをカスタマイズしようとしています。Telerik winformツリービューの展開/折りたたみアイコンを変更するにはどうすればよいですか?

TreeViewコントロールにPropertyBuilderを設定すると、Telerik.WinControls.UI.ExpandCollapseElementsが表示され、展開/折りたたみアイコンを変更できます。しかし、私は動的にツリーを作成したい。

私はテーマの変更を調べましたが、ビジュアルスタイルビルダのどこにでもExpandCollapseElementsが表示されず、オブジェクトモデルのRadTreeViewの最後でこれらのアイコンを変更する方法もありません。

スクリーンショットではできますが、何が欠けていますか?

+0

ツリーを動的に取り込む場合は、アイコンを展開/折りたたんで別の行に表示したいとしますか?あるいは、コードを使ってノードを追加するだけですが、すべてのノードで同じアイコンを使用できますか? –

答えて

0

私は手、そのテーマのXMLを編集するXMLを再インポートし、それを保存、私はXMLとして使用していたテーマを保存することになりました.tsspとして。私が欲しいイメージは別のテーマの一部だったのは幸運でした。

このアプローチは、私たちがサポートしているすべてのプラットフォームでうまく見えるようにテーマサポートが必要なため、私の状況ではおそらく最も効果的です。

他のアプローチはよく見えます。私はそれらを試していない。

1

ノードを作成するときに、展開/折りたたみアイコンを直接設定できます。

Image imageToUseForExpand = /* get this image from somewhere */; 
Image imageToUseForCollapse = /* get this image from somewhere */; 

RadTreeNode item = new RadTreeNode("Node with custom icons"); 

//NOTE: You need to add the node to the treeview before working 
//  with the TreeViewElement property (otherwise it will be null) 
radTreeView1.Nodes.Add(item); 

//Set the expand and collapse images to whatever you want 
item.TreeViewElement.ExpandImage = imageToUseForExpand; 
item.TreeViewElement.CollapseImage = imageToUseForCollapse; 

それともあなたは(あなたがノードを作成するたびに画像を指定する必要はありませんどこ)より一般的に書式設定をしたいと思った場合、あなたはこのようなNodeFormattingイベントを処理できます:

たとえば、
//Either register the even in code (like this) or via the Designer 
radTreeView1.NodeFormatting += radTreeView1_NodeFormatting; 

//Then in the event handler, set the appropriate image 
private void radTreeView1_NodeFormatting(object sender, 
             TreeNodeFormattingEventArgs e) 
{ 
    //See whether the node is currently expanded and set the image accordingly 
    if (e.Node.Expanded) 
     e.NodeElement.ExpanderElement.SignImage = imageToUseForExpand; 
    else 
     e.NodeElement.ExpanderElement.SignImage = imageToUseForCollapse; 
} 

注:NodeFormattingイベントは比較的新しいものだと思うので、最新のバージョンのTelerikを使用する必要があります。このコードに問題がある場合は、コントロールの最新バージョンを実行していることを確認してください。展開したり折りたたんだり画像をグローバルに変更

1

は、次の手順を実行します

Image imageToUseForExpand = /* get this image from somewhere */; 
Image imageToUseForCollapse = /* get this image from somewhere */; 

radTreeView1.TreeViewElement.ExpandImage = imageToUseForExpand; 
radTreeView1.TreeViewElement.CollapseImage = imageToUseForCollapse; 
関連する問題