JACHYMKO: Pokud maji byt vsechny stejne vysoke, tak to jde.
private void FTreeViewSample_Load(object sender, EventArgs e) {
this.treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText;
this.treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode);
this.treeView1.ItemHeight *= 2;
var node_A = this.treeView1.Nodes.Add("First node");
var node_A_A = node_A.Nodes.Add("First node - first child");
var node_A_A_A = node_A_A.Nodes.Add("First node - first child - first child");
var node_A_B = node_A.Nodes.Add("First node - second child");
var node_A_C = node_A.Nodes.Add("First node - third child");
var node_B = this.treeView1.Nodes.Add("Second node");
}
void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) {
var rectLine1 = e.Bounds;
rectLine1.Height /= 2;
var rectLine2 = e.Bounds;
rectLine2.Height /= 2;
rectLine2.Y += rectLine2.Height;
var textLine1 = e.Node.Text;
if ( null == textLine1 ){ textLine1 = string.Empty; }
var textLine2 = new string(textLine1.Reverse().ToArray());
var fontReqular = e.Node.NodeFont;
if (null == fontReqular) { fontReqular = e.Node.TreeView.Font; }
using (var brushLine1 = new SolidBrush(Color.Red)) {
e.Graphics.DrawString(textLine1, fontReqular, brushLine1, rectLine1);
}
using (var fontBold = new Font(fontReqular, FontStyle.Bold)) {
using (var brushLine2 = new SolidBrush(Color.Green)) {
e.Graphics.DrawString(textLine2, fontBold, brushLine2, rectLine2);
}
}
}