MouseEnter事件的奇怪行为

hak*_*kan 5 c# xaml windows-phone windows-phone-8

我正在开发一个Windows Phone 8 XAML应用程序.

我为XAML页面中的几个对象定义了MouseEnter事件.(例如两个矩形).触发这些对象的MouseEnter事件后,我按下同一页面上的按钮.按下按钮不仅会触发自己的点击事件.它还会触发输入的最后一个Rectangle的MouseEnter事件.

使用只有两个矩形和一个Button的新项目可以重现该问题.此行为不会始终显示,但可以在触发矩形的MouseEnter事件几次后观察到.

我的XAML对象如下.

<Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100"
           Margin="102,306,0,0" Stroke="Black" 
           VerticalAlignment="Top" Width="100" 
           MouseEnter="Rectangle_MouseEnter"/>

<Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Left" Height="100" 
           Margin="314,306,0,0" Stroke="Black" 
           VerticalAlignment="Top" Width="100"
           MouseEnter="Rectangle_MouseEnter"/>

<Button Content="Button" HorizontalAlignment="Left"
        Margin="256,481,0,0" VerticalAlignment="Top" Click="Button_Click"/>
Run Code Online (Sandbox Code Playgroud)

后面的代码看起来像这样.

private void Rectangle_MouseEnter(object sender, 
                                  System.Windows.Input.MouseEventArgs e)
{
    Debug.WriteLine("Rectangle_MouseEnter");
}

private void Button_Click(object sender, RoutedEventArgs e)
{
    Debug.WriteLine("Button_Click");
}
Run Code Online (Sandbox Code Playgroud)

Fri*_*ren -1

如果我记得的话,在 Windows pone 和 Windows 8 应用程序中,最好使用点击事件而不是鼠标事件。这可能是问题所在。看看这个链接:

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.uielement.tapped.aspx