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");
}

それはシルバーライトのバグですか、それとも何か不足していますか? ありがとう/マイク

4

1 に答える 1

0

答えてくれてありがとう、ここに更新があります:Guyが示唆するように、MouseCaptureと関係があるようです。その理由は、分離コードでマウスをキャプチャする 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 イベントは登録されません。

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

于 2011-01-04T15:48:00.620 に答える