Вы не указываете, что привело вас к этому, что немного помогло бы.
Это немного противно, но вы могли бы сделать это:
IInputElement dropNode = tree.InputHitTest(point);
Это будетвозможно, вы получите TextBlock, поэтому вам придется использовать VisualTreeHelper.GetParent () для перемещения вверх по TextBlock, ContentPresenter, Border, Grid, а затем, в конечном итоге, TreeViewItem.
Это, конечно, не самый хороший подход, но это должно сработать.
В зависимости от того, что вы делаете, в блоге Майка Хилберга был предложен подход с использованием прикрепленных свойств, который используется в триггере.См. здесь
В своем примере он превращает TreeViewItem в зеленый цвет, когда мышь над ним.
<TreeView.Resources>
<Style TargetType="TreeViewItem">
<Style.Triggers>
<Trigger Property="local:MyTreeViewHelper.IsMouseDirectlyOverItem" Value="True">
<Setter Property="Background" Value="Green" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.Resources>
Класс MyTreeViewHelper отслеживает MouseEnter / MouseLeaveсобытия, и дает хорошее свойство, которое можно использовать в триггерах и тому подобном, как показано выше.
Надеюсь, это поможет.