Vb.net Silverlight 4 TreeView中的虚假MouseEnter/MouseLeave事件
我试图使用MouseLeave事件隐藏包含TreeView对象的弹出控件。没过多久就发现了第一个细微差别,即弹出控件不会发出MouseLeave事件。因此,我使用指定的hackaround并从子对象捕获事件。然后我遇到了第二个细微差别。鼠标一进入控件,MouseLeave事件即触发。我发现TreeView控件在进入TreeView对象时发出一系列交替的MouseEnter和MouseLeave事件 以下代码通过IE8提供了这方面的证据:Vb.net Silverlight 4 TreeView中的虚假MouseEnter/MouseLeave事件,vb.net,silverlight,treeview,mouseleave,Vb.net,Silverlight,Treeview,Mouseleave,我试图使用MouseLeave事件隐藏包含TreeView对象的弹出控件。没过多久就发现了第一个细微差别,即弹出控件不会发出MouseLeave事件。因此,我使用指定的hackaround并从子对象捕获事件。然后我遇到了第二个细微差别。鼠标一进入控件,MouseLeave事件即触发。我发现TreeView控件在进入TreeView对象时发出一系列交替的MouseEnter和MouseLeave事件 以下代码通过IE8提供了这方面的证据: Public Class MainApp Inhe
Public Class MainApp
Inherits Application
Dim _cnt As Integer = 1
Public Sub New()
AddHandler Me.Startup, AddressOf HandleStartup
End Sub
Private Sub HandleStartup()
Dim tv As New TreeView
AddHandler tv.MouseEnter, AddressOf HandleMouseEnter
AddHandler tv.MouseLeave, AddressOf HandleMouseLeave
RootVisual = tv
End Sub
Private Sub HandleMouseEnter(ByVal sender As Object, ByVal ev As MouseEventArgs)
System.Diagnostics.Debugger.Log(0, Nothing, "MouseEnter " & _cnt & vbCrLf)
_cnt += 1
End Sub
Private Sub HandleMouseLeave(ByVal sender As Object, ByVal ev As MouseEventArgs)
System.Diagnostics.Debugger.Log(0, Nothing, "MouseLeave " & _cnt & vbCrLf)
_cnt += 1
End Sub
End Class
我希望看到的地方
MouseEnter 1
...
MouseLeave 2
相反,我明白了
MouseEnter 1
MouseLeave 2
MouseEnter 3
...
MouseLeave 4
因此,隐藏对MouseLeave的控制权是一场失败的战斗。关于正在发生的事情或者可以做些什么来解决这个问题,有什么想法吗