可能有的朋友正在想如何用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