C# Custom TreeNode Align

У меня есть собственный элемент управления TreeNode

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);
    }

Как правильно рисовать?

0 ответов

Другие вопросы по тегам