MouseUp事件并不总是触发

时间:2012-10-12 14:20:32

标签: c# wpf mouseup

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

<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>

2 个答案:

答案 0 :(得分:2)

也许在释放按钮之前将鼠标从文本块中拉出来?另请注意,如果您位于文本右侧,则可能无法单击文本块,这可能有助于将Horizo​​ntalContentAlignment =“Stretch”添加到ListView。

答案 1 :(得分:0)

您无法保证将调用MouseUp处理程序,因为事件可以由VisualTree中的后代可视化处理。如果要确保捕获事件,则应使用隧道事件(PreviewMouseUp)。

另一种方法是在后面的代码中使用AddHandler方法,并指定您要管理已处理的事件。