2010-12-30 13 views
3

MouseLeaveイベントは、カーソルを特定の速度で動かすと発生します。以下は、ボーダー付きの親指です。親指をクリックし、マウスボタンを押したままにします。国境の外でゆっくりと移動する=イベントなし、国境の外で速く移動する=イベント。Silverlight 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"); 
} 

銀色のバグですか、何か不足していますか? anwersため ありがとう /マイク

+1

何をしようとしているのかはっきりしていませんが、CaptureMouseを使用して調べることもできます。 – Guy

+0

同じ問題が発生しました。 WPFでは正常に動作しますが、Silverlightでは動作しません。残念ながら、私は解決策や回避策を見つけることができませんでした:( –

答えて

0

ありがとう、ここでの更新です: ガイが示唆するようMouseCaptureとは何かを持っているようです。その理由は、コードビハインドでマウスをキャプチャするボタンまたは矩形を使用して問題が発生するためです。

私がThumbとBorderの間にグリッドを置くと、問題は消えるので、私はそれと一緒に行くと思います。

私はいくつかの周りを遊んだので、私は関連する問題に気づいた。

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

左ボタンを押してカーソルを四角形の上に移動し、MouseLeaveイベントが登録されていない場合。

これはすべて非常に奇妙です。

関連する問題