我的应用程序中有一个 TreeView
<TreeView
...
<TreeView.ItemContainerStyle>
<Style
TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}"/>
<Setter Property="Margin" Value="0, 2"/>
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="OnMouseLeftButtonClicked"/>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate
ItemsSource="{Binding Children}">
<StackPanel
Orientation="Horizontal">
<Image
VerticalAlignment="Center"
Width="20"
Height="20"
Source="{Binding Type, Converter={StaticResource ItemTypeToImageConverter}}"/>
<TextBlock
FontSize="16"
Foreground="White"
FontFamily="{StaticResource Dosis}"
Margin="10, 0"
VerticalAlignment="Center"
Text="{Binding Name}"/>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
OnMouseLeftButtonClicked 处理程序:
protected void OnMouseLeftButtonClicked(object sender, MouseButtonEventArgs args)
{
...
}
我只想在用户单击树项内容时执行处理程序中定义的一些操作,而不是在单击扩展器时执行。如何区分点击来源?