通常鼠标右键单击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事件,
2
3 void Activity_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
4 {
5 e.Handled = true ;
6 MessageBox.Show( " RightClick " );
7 }
效果和上边相同
PS:在火狐下第一种方法无效,直接使用的MouseRightButtonDown有效