如何捕捉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

posted @ 2008-07-30 13:46  王博_Nick  Views(4661)  Comments(12Edit  收藏  举报