Ширина дерева по содержимому

Clava
Дата: 22.04.2014 18:38:50
Необходимо устанавливать ширину дерева по максимальной ширине содержимого. Но ширина отступа вложенных элементов никаким образом не учитывается. Можно ли вычислить эту ширину каким либо образом?
Сейчас делаю вот так:
 private int GetMaxNodeWidth(TreeNodeCollection nodes, int width)
        {
            if (nodes != null)
                foreach (TreeNode node in nodes)
                {
                    width = Math.Max(width, node.Bounds.Right);
                    width = GetMaxNodeWidth(node.Nodes, width);
                }
            return width;
        }

        private int ResizeTreeView(TreeView tree)
        {
            int width = GetMaxNodeWidth(tree.Nodes, 0);
            tree.ClientSize = new Size(width, tree.ClientSize.Height);
            return tree.ClientSize.Width;
        }