Мышь Silverlight левой кнопкой мыши вниз - PullRequest
0 голосов
/ 16 февраля 2010

В проекте Silverlight 3 я использую событие нажатия левой кнопки мыши на элементе управления границей, но обнаружил, что событие возникает даже тогда, когда я слегка нажимаю кнопку за пределами границы, например 5-10 пикселей.

Кто-нибудь сталкивался с этой проблемой раньше?

Спасибо в ожидании!

Ниже приведен XAML, в котором мы фиксируем событие brdSelect:

        <Border  MouseLeftButtonDown="Grid_Mousedown" x:Name="brdSelect" Grid.Row="1" Grid.Column="1" BorderThickness="0.5" BorderBrush="#FF2D9FD2">
            <Grid x:Name="grdSelect" >

                <Border x:Name="brdImage"   BorderThickness="0" CornerRadius="5" Width="Auto" Height="Auto">
                   <Image Height="Auto" Width="Auto" Stretch="UniformToFill" x:Name="imgMotive"/>
                </Border>

                <Image Height="Auto" Stretch="UniformToFill" x:Name="imgtmp" Visibility="Collapsed"/>

            </Grid>
        </Border>

        <Image Height="13" Width="13" Source="../Images/rotate_small.JPG" Stretch="None" x:Name="imgRotate" Grid.Row="0" Grid.Column="3" Visibility="Collapsed"/>
        <StackPanel Orientation="Horizontal" d:LayoutOverrides="GridBox" Grid.ColumnSpan="3" Margin="0,0,2,0" Width="32" HorizontalAlignment="Left">
            <Image Height="13" Width="13" Source="../Images/delete_small.JPG" Stretch="None" x:Name="imgDelete"  Visibility="Collapsed" />
        </StackPanel>
        <Image Source="../Images/resize_small.JPG" Stretch="None" x:Name="imgResize" Grid.Row="2" Grid.RowSpan="2"  Grid.Column="2" Visibility="Collapsed" Opacity="0"/>

    </Grid>
    <TextBlock x:Name="txtLabel" Height="100" HorizontalAlignment="Left" Margin="-80,0,0,-20" Width="80" Text="X: 0 --- Y: 0" Foreground="Red" TextWrapping="Wrap" Visibility="Collapsed"/>

</Grid>
</Border>

1 Ответ

0 голосов
/ 17 февраля 2010

Как я понимаю, проблема в MouseLeftButtonDown обработке событий. В MSDN здесь я нашел:

Событие MouseLeftButtonDown является бурлящее событие. Это означает, что если несколько событий MouseLeftButtonDown определены для дерева элементов, событие получено каждым объектом в иерархии объектов, начиная с объект, который непосредственно получает событие, а затем пузыри к каждому последовательный родительский элемент. пузырящаяся метафора указывает на то, что событие начинается снизу и работает его путь вверх по дереву объектов. Для барботирующее событие, параметр отправителя идентифицирует объект, где происходит событие обрабатывается, не обязательно объект что на самом деле получил вклад условие, которое инициировало событие.

У вас есть дочерняя граница с CornerRadius="5". Возможно, это свойство фактически заставляет дочернюю границу получать событие мыши, когда визуально этого не должно происходить Хотя это зависит от фактической реализации, и вам лучше это проверить.

...