Это не самый элегантный способ решить эту проблему, но это должно помочь:
Point p0 = YourTreeView.PointToScreen(new Point());
возвращает позицию дерева
Point p1 = YourTreeViewItem.PointToScreen(new Point());
возвращает положение treeViewItem
результат дает вам их дельту (p0.X-p1.X), и из этого вы можете вычислить его «глубину» в TreeView
В качестве альтернативы вы можете попытаться взобраться на визуальное дерево, начиная с TreeViewItem, используя цикл и Control.Parent, чтобы подсчитать TreeViewItems выше, чтобы получить его «глубину» до того, как вы нажмете на treeView (код не проверен im на моем телефоне)
TreeViewItem item = YourTreeViewItem;
int depth = 0;
while(item.Parent.GetType() != typeof(TreeView))
{
depth++;
item = item.Parent as TreeViewItem;
}
к сожалению, нет параметра, который можно напрямую увеличить, чтобы получить «глубину»