首页 文章

Silverlight MouseLeave显示不一致的行为

提问于
浏览
3

所以,我的问题是,如果我以一定的速度移动光标,MouseLeave事件才会被触发 . 下面是带边框的拇指 . 单击拇指并按住鼠标按钮 . 在边界外缓慢移动=无事件,在边界=事件之外快速移动 .

<Grid x:Name="LayoutRoot" Background="White">
    <Border BorderBrush="Black" BorderThickness="3" Width="200" Height="100"
            MouseLeave="Border_MouseLeave">
            <Thumb  />
    </Border>
</Grid>


private void Border_MouseLeave(object sender, MouseEventArgs e)
{
    MessageBox.Show("Border_MouseLeave");
}

它是银光中的错误还是我错过了什么? Thanx / Mike

1 回答

  • 0

    对于anwers的Thanx,这是一个更新:它似乎与GuyCapture有关,正如Guy建议的那样 . 原因是我也使用Button或一个在代码隐藏中捕获鼠标的Rectangle来解决问题 .

    如果我在Thumb和Border之间放置一个Grid,问题就会消失,所以我想我会继续使用它 .

    当我玩一些时,我也注意到了一个相关的问题 .

    <Grid Width="200" Height="100" Background="Transparent" 
                  MouseLeave="Border_MouseLeave">                
                  <Button  />                
                  <Rectangle Width="40" Height="40" Fill="Violet"               
                             HorizontalAlignment="Left" />            
             </Grid>
    

    如果我按下左按钮并将光标移到Rectangle上方的左侧,则不会注册MouseLeave事件 .

    这一切都很奇怪 .

相关问题