Vb.net Silverlight 4 TreeView中的虚假MouseEnter/MouseLeave事件

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

我试图使用MouseLeave事件隐藏包含TreeView对象的弹出控件。没过多久就发现了第一个细微差别,即弹出控件不会发出MouseLeave事件。因此,我使用指定的hackaround并从子对象捕获事件。然后我遇到了第二个细微差别。鼠标一进入控件,MouseLeave事件即触发。我发现TreeView控件在进入TreeView对象时发出一系列交替的MouseEnter和MouseLeave事件

以下代码通过IE8提供了这方面的证据:

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的控制权是一场失败的战斗。关于正在发生的事情或者可以做些什么来解决这个问题,有什么想法吗