如何捕捉Silverlight右键点击事件

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

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

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

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

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

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

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

< asp:Silverlight  ID ="Xaml1"  Windowless ="true"  runat ="server"  Source ="~/ClientBin/SilverlightApplication1.xap"  MinimumVersion ="2.0.30523"  Width ="100%"  Height ="100%"   />

< param  name ="windowless"  value ="true"   />

 

< UserControl  x:Class ="RightClick_Silverlight.Page"
    xmlns
="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"  
    Width
="400"  Height ="300" >
    
< Grid  x:Name ="LayoutRoot"  Background ="White" >
        
< TextBlock  x:Name ="MyField" > Right click please. </ TextBlock >
    
</ Grid >
</ UserControl >

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

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

 

public  Page()
{
    HtmlPage.Document.AttachEvent(
" oncontextmenu " this .OnContextMenu);
}

private   void  OnContextMenu( object  sender, HtmlEventArgs e)
{
        
string  X  =  e.OffsetX;
        
string  y  =  e.OffsetY;
        e.PreventDefault();
 }

 

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

Source code: MouseRightClick

你可能感兴趣的:(silverlight)