屏蔽silverlight 4应用中的右键菜单

默认情况下,当用户右键单击某个Silverlight 应用程序时,将看到Silverlight右键菜单项,选择它将打开 Silverlight 配置对话框。如何屏蔽silverlight应用中的右键菜单呢?http://www.c-sharpcorner.com/uploadfile/dpatra/disable-context-menu-in-silverlight-3-application/提供了一种方法:在oncontextmenu事件处理程序函数中使用HtmlEventArgs对象的PreventDefault方法取消当前事件执行默认操作。但因为浏览器兼容性的问题,该方法只对IE起作用。有没有一种完美的解决方案呢?

其实,Silverlight 4新增了MouseRightButtonDown和MouseRightButtonUp事件,现在可以在silverlight 4应用程序处理右键单击鼠标事件并更改行为。利用这一特性,可以很方便地屏蔽silverlight 4应用中的右键菜单。

在MainPage.xaml中为UserControl添加MouseRightButtonDown事件处理程序函数,代码如下:

private void UserControl_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
    e.Handled = true;
}

不用新增windowless参数,两三句代码就屏蔽了右键菜单。同样在Flash Player 11.2中也新增了右键事件,一样可以屏蔽了右键菜单。

发表评论