可能有的朋友正在想如何用Silverlight实现右键菜单栏,那么这篇文章可能会对你有很大帮助~

上次说要给大家晒晒在Silverlight中捕捉鼠标右键的方法.

这里还会用我们常见的对象HtmlPage(System.Windows.Browser;)

在这个对象下有一个Document属性,这个属性中的方法相信大家都有点儿了解了吧 上次讲Cookie的时候也用到了他.

这次捕获鼠标右键的工作也要交给他了~

呵呵 还是先给大家share下代码吧'

首先要把我们Silverlight控件的windowless属性设置为true.

 
  
  1. <asp:Silverlight ID="Xaml1" Windowless="true" runat="server" Source="~/ClientBin/SilverlightApplication1.xap" MinimumVersion="2.0.30523" Width="100%" Height="100%" /> 
  2.  
  3. <param name="windowless" value="true" /> 
 
  
  1. <UserControl x:Class="RightClick_Silverlight.Page" 
  2.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  3.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  4.     Width="400" Height="300"
  5.     <Grid x:Name="LayoutRoot" Background="White"
  6.         <TextBlock x:Name="MyField">Right click please.</TextBlock> 
  7.     </Grid> 
  8. </UserControl> 

其实捕获鼠标的原理很简单 就是在pageload的时候给你的控件添加一个捕获事件

用的就是我们之前所说的HtmlPage对象

 
  
  1. public Page() 
  2.     HtmlPage.Document.AttachEvent("oncontextmenu", this.OnContextMenu); 
  3.  
  4. private void OnContextMenu(object sender, HtmlEventArgs e) 
  5.         string X = e.OffsetX; 
  6.         string y = e.OffsetY; 
  7.         e.PreventDefault(); 
  8.  } 

 

相信看到这里大家都明白了吧~ 这里都是我搜集来的小技巧希望对大家有所帮助~

Source code: MouseRightClick