Silverlight学习之鼠标右键

通常鼠标右键单击Silverlight程序,总是会弹出一个Silverlight默认的菜单如下。

但是在很多情况需要单击鼠标右键出现自己想要的东西,这时候就要自定义鼠标右键事件

首先在Silverlight的宿主页面中添加上 <param name="windowless" value="true" />此属性。

后台代码

 void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            HtmlPage.Document.Att

achEvent("oncontextmenu",this.RightClick);
        }

        private void RightClick(object sender,HtmlEventArgs e)
        {
            MessageBox.Show("RightClick");
            e.PreventDefault();
        }

在页面加载的时候监听oncontextmenu事件,用AttachEvent为事件添加事件处理程序RightClick。当右键单击时,会弹出对话框。

效果

e.PreventDefault用来阻止Silverlight默认的右键单击时候触发的事件。

这样我们就可以自定义自己想要的东西了

上边是silverlight3里边的方法,在silverlight4可以直接使用鼠标的MouseRightButtonDown事件,
 

View Code
1 this.MouseRightButtonDown += new MouseButtonEventHandler(Activity_MouseRightButtonDown);
2
3 void Activity_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
4 {
5 e.Handled = true;
6 MessageBox.Show("RightClick");
7 }

效果和上边相同

PS:在火狐下第一种方法无效,直接使用的MouseRightButtonDown有效

posted @ 2010-05-26 18:42  JerryT  阅读(1376)  评论(6编辑  收藏  举报