Silverlight MouseLeave показывает непоследовательное поведение - PullRequest
3 голосов
/ 30 декабря 2010

Итак, моя проблема в том, что событие 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");
}

Это ошибка в Silverlight или я что-то упустил?Спасибо / Майк

1 Ответ

0 голосов
/ 04 января 2011

Спасибо за ответы, вот обновление: Похоже, что-то связано с MouseCapture, как предполагает Гай. Причина в том, что я также получаю проблему, используя кнопку или прямоугольник, который захватывает мышь в коде позади.

Если я поставлю сетку между большим пальцем и границей, проблема исчезнет, ​​поэтому я думаю, что я пойду с этим.

Я также заметил проблему, связанную с некоторыми.

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

Если я нажму левую кнопку и переместу курсор влево над прямоугольником, а событие MouseLeave не будет зарегистрировано.

Это все очень странно.

...