方法一:
private void test_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.Source is TreeViewItem)
{
if (e.RightButton == MouseButtonState.Pressed)
{
(e.Source as TreeViewItem).IsSelected = true;
}
}
}
方法二:
Here is the code:
Code Snippet
<TreeView Name="treeView"
ItemsSource="{Binding Path=Root.Elements}"
ItemTemplate="{StaticResource template}">
<TreeView.ItemContainerStyle>
<Style TargetType="TreeViewItem">
<EventSetter
Event="TreeViewItem.MouseRightButtonDown"
Handler="TreeViewItem_MouseRightButtonDown"/>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
private void TreeViewItem_MouseRightButtonDown(object sender, MouseEventArgs e)
{
TreeViewItem item = sender as TreeViewItem;
if (item != null)
{
item.Focus();
e.Handled = true;
}
}
For the explanation on why setting focus can select the TreeViewItem, you can refer to this thread instead.
Hope this helps