none
风云的银光志Silverlight4.0教程之使用鼠标右键事件和滚轮事件 RRS feed

  • 常规讨论

  • Silverlight4中的鼠标事件中加入了两种十分实用的事件,那就是右键事件和滚轮事件(也叫滑轮事件)。

    右键事件包括:MouseRightButtonDown MouseRightButtonUp

    滚轮事件包括:MouseWheel

    在我们日常操作一些应用程序时,通过鼠标右键大多数是用来显示一个右键的弹出菜单,菜单的一般显示在鼠标点击时的同一位置,而滚轮事件在我们浏览网页时常可以用来改变文字或图片的缩放尺寸,基于以上两种常用的操作,我们制作一个Silverlight版本的右键菜单和滚轮缩放功能。首先我们进行简单的界面布局。

    XAML:

        <Grid x:Name="LayoutRoot" 
            Background="Black">
            <Image x:Name="img" RenderTransformOrigin="0.5,0.5" 
                Source="Images/avatar_8.jpg" Stretch="Fill">
                <Image.RenderTransform>
                    <ScaleTransform x:Name="st"/>
                </Image.RenderTransform>
            </Image>
            <TextBlock x:Name="tbTip"
    10               FontSize="12"
    11               FontFamily="SimSun" 
    12               Text="你好,请使用鼠标滚轮来调整图片大小" 
    13               Foreground="White" Margin="5"/>
    14         <ListBox x:Name="lstMenu" Width="150" Height="260"
    15             HorizontalAlignment="Left" 
    16             VerticalAlignment="Top">
    17         </ListBox>
    18     </Grid>

    我们先来看一下程序功能和运行效果:

    image

    弹出右键菜单

    image

    切换不同的图片

    image

    使用滑轮调整缩放比例0.8倍

    image

    使用滑轮调整缩放比例1.8倍

          首先我们定义了基于LayoutRoot的鼠标右键和滚轮事件,通过Image来显示被缩放的图片内容,右键菜单显示时会与鼠标的位置始终一致,delTa和Flag分别控制缩放的倍数和每次缩放的大小因数值。

          这里的右键菜单我们使用的是ListBox控件隐藏和显示来实现的,在界面上任意位置点击左键时右键菜单就会隐藏,不过这种方式的右键菜单并不是完美,例如不支持多级菜单等。你也可以使用一些三方的菜单控件,例如ContextMenu,或是干脆自己设计个UserControl做为一个右键菜单,通过这个实例相信你对Silverlight 4.0中的鼠标右键事件和滚轮事件有了一个比较完整的了解,另外设置e.Handled的值为true可以隐藏Silverlight插件本身的默认右键菜单

     

    希望对大家有用!

    由于帖子字数限制,完整代码请看原贴:http://blog.csdn.net/dotfun/archive/2010/02/18/5310872.aspx


    风云的Silverlight4.0原创系列教程:http://blog.csdn.net/dotfun/category/647012.aspx


    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com


    《银光志--Silverlight 3.0开发详解与最佳实践》
    2010年2月20日 2:37
    版主