0

Silverlight 3プロジェクトでは、境界線コントロールでマウスの左ボタンダウンイベントを使用していますが、5〜10ピクセルのように境界線の少し外側のボタンをクリックしても、イベントが発生することがわかりました。

誰かが以前にこの問題に直面したことがありますか?

期待してくれてありがとう!

以下は、brdSelectのイベントをキャプチャしているXAMLです。

        <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>
4

1 に答える 1

0

私が理解しているように、問題はMouseLeftButtonDownイベント処理にあります。ここのMSDNで見つけました:

MouseLeftButtonDown イベントはバブリング イベントです。これは、要素のツリーに対して複数の MouseLeftButtonDown イベントが定義されている場合 、イベントを直接受け取るオブジェクトから始めて、オブジェクト階層内の各オブジェクトがイベントを受け取り、その後、連続する各親要素にバブルすることを意味します。バブリングの比喩は、イベントが一番下から始まり、オブジェクト ツリーを上っていくということを示しています。バブリング イベントの場合、sender パラメーターは、イベントが処理されるオブジェクトを識別します。必ずしも、イベントを開始した入力条件を実際に受け取ったオブジェクトではありません。

との子ボーダーがありCornerRadius="5"ます。このプロパティにより、視覚的には発生しないはずの子ボーダーが実際にマウス イベントを受け取る可能性があります。これは実際の実装に依存しますが、これを確認することをお勧めします。

于 2010-02-17T14:16:13.687 に答える