C# 鼠标悬停事件不发生';不要总是触发

C# 鼠标悬停事件不发生';不要总是触发,c#,wpf,mouseup,C#,Wpf,Mouseup,我有一个由mouseUp事件触发的函数。一切正常,只是有时候没有检测到mouseUp事件。 事实上,我有一个带有项目的列表视图,当我选择一个项目时,它会触发一个函数。但并非总是如此 <ListView Margin="4" Grid.Row="1" Grid.ColumnSpan="2" x:Name="statinfoListview" ItemsSource="{Binding Path=ExistingStateInfos, ElementName=Window}" Sel

我有一个由mouseUp事件触发的函数。一切正常,只是有时候没有检测到mouseUp事件。 事实上,我有一个带有项目的列表视图,当我选择一个项目时,它会触发一个函数。但并非总是如此

<ListView Margin="4" Grid.Row="1" Grid.ColumnSpan="2" x:Name="statinfoListview" 
  ItemsSource="{Binding Path=ExistingStateInfos, ElementName=Window}"
  SelectedItem="{Binding Path=SelectedStateInfo, ElementName=Window}">
    <ListView.ItemTemplate>
        <DataTemplate DataType="{x:Type States:StateInfo}">
            <TextBlock Text="{Binding Path=Name}" MouseUp="ApplyStateInfoNameToState_Click" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

由于事件可以由VisualTree中的子代VisualVisual处理程序处理,因此无法保证会调用MouseUp处理程序。如果要确保捕获事件,则应使用隧道事件(PreviewMouseUp)


另一种选择是在代码隐藏中使用AddHandler方法,并指定要管理已处理事件。

在释放按钮之前,是否将鼠标从文本块中拉出?另请注意,您可能没有单击文本块。如果您位于文本的右侧,则将HorizontalContentAlignment=“Stretch”添加到列表视图可能会有所帮助。

在释放按钮之前,您是否将鼠标从文本块中拉出?另请注意,如果您在文本右侧,则可能没有单击文本块,将
HorizontalContentAlignment=“Stretch”
添加到列表视图可能会有所帮助。是的。非常感谢:)如果这解决了问题,我会继续添加答案。谢谢你的建议西西弗。我刚刚尝试了KDiTraglia的方法,目前效果不错。如果测试没有结果,我就用你的解决方案。