【发布时间】:2018-05-15 14:35:32
【问题描述】:
我有这个有效的代码,
private void TreeSetup_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
if (sender is TreeViewItem)
{
((TreeViewItem)sender).IsSelected = true;
}
e.Handled = true;
}
private void TreeSetup_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
{
ContextMenu PopupMenu = this.FindResource("cmButton") as ContextMenu;
if (TreeSetup.SelectedItem != null)
{
PopupMenu.PlacementTarget = sender as TreeViewItem;
PopupMenu.IsOpen = true;
}
}
但是一旦我添加了这个 ItemContainerStyle,
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="FontWeight" Value="Bold" />
</Trigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
鼠标按下事件的发送者变为 TreeView 而不是 TreeViewItem。 有谁知道原因并解决这个问题?
【问题讨论】:
-
你是如何在 XAML 中为
TreeViewItem绑定TreeSetup_MouseRightButtonDown和TreeSetup_MouseRightButtonUp的? -
我的按钮向下,作为树视图资源:
-
和 mouseButtonUp 在树视图的行: