Вы можете привязать к свойству IsOpened контекстного меню, используя DataTrigger:
<DataTrigger Binding="{Binding ContextMenu.IsOpen, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="Green"/>
</DataTrigger>
К сожалению, поскольку все элементы в TreeView имеют одно и то же ContextMenu, которое выделит их все сразу.Кажется, что нет свойства, позволяющего узнать, какой FrameworkElement открыл ContextMenu.
Вы можете обрабатывать события ContextMenuOpening и ContextMenuClosing в TreeViewItem, поскольку они будут всплывать из элемента управления, который обрабатывал щелчок, и проходить через правый TreeViewItem.Если вы хотите сделать это в XAML, вы можете использовать EventTrigger, чтобы запустить однокадровую анимацию, которая изменяет ваше свойство.Самым чистым вариантом может быть написание присоединенного поведения, которое обрабатывает события ContextMenuOpening и ContextMenuClosing и устанавливает для присоединенного свойства значение true, когда контекстное меню открыто.