我有自定义的TreeNode Control whit
DrawMode = OwnerDrawAll
如果用户展开树,则需要使用其他节点的距离。 就我而言,我看到了这一点。
我添加了VisualElementRenderer(加号和减号) 和更多功能。 但无法找到一个很好的解决方案。
例如我试过
int offset = 20;
e.Bound.X + offset * e.Node.Index;
我看到了
但不正确。
我的树是:
我的树。
aaa
|___ Nuova Cartella
| |_ Nuovo Documenti di testo.txt
|
|__ aaa.mp2d
|__ test.mp2d
我的代码
g.DrawString(e.Node.Text, this.Font, Brushes.Black, new PointF(e.Bounds.X + 40 + offset * e.Node.Index, e.Bounds.Y + 15));
if (e.Node.Text.Contains(".mp2d"))
{
if (anteprime.ContainsKey(e.Node.Text)) g.DrawImage(anteprime[e.Node.Text], e.Bounds.X+offset * e.Node.Index, e.Bounds.Y + 5);
else g.DrawImage(Properties.Resources.NoPreview, e.Bounds.X+offset * e.Node.Index, e.Bounds.Y + 5);
}
else
{
if (e.Node.IsExpanded)
{
g.DrawImage(MireEditor.Properties.Resources.folder_black, e.Bounds.X+offset * e.Node.Index, e.Bounds.Y + 5);
}
else
{
g.DrawImage(MireEditor.Properties.Resources.Folder_Black_Generic, e.Bounds.X+offset * e.Node.Index, e.Bounds.Y + 5);
}
如何正确绘制?