【技巧】Silverlight中的右键菜单

Posted on 2009-11-25 13:59  チャチャの楽園  阅读(487)  评论(0编辑  收藏  举报

此随笔能令SL应用屏蔽默认的右键菜单,以及使用自己的右键菜单

首先,必须把aspx页面的<asp:Silverlight>标签的Windowless属性设置为true,这步很重要,切记!

接着,编写好自己的右键菜单控件,可以是Border或者其他

最后,就是使用ContextMenuInterceptor类来加载右键菜单,具体代码如下:

 

    public partial class Page : UserControl
    {
        ContextMenuInterceptor _cmi = null;
        public Page()
        {
            InitializeComponent();
            _cmi = new ContextMenuInterceptor(MyField);           
        }
    }       
 
    public class ContextMenuInterceptor
    {
        UIElment TextField;
 
        public ContextMenuInterceptor(UIElement textField)
        {
            TextField = textField;
            HtmlPage.Document.AttachEvent("oncontextmenu", this.OnContextMenu);
        }
 
        private void OnContextMenu(object sender, HtmlEventArgs e)
        {
            TextField.Text = "Right Clicked Blocked at "+e.OffsetX+","+e.OffsetY;           
            e.PreventDefault();           
        }
    }
 

 

Copyright © 2024 チャチャの楽園
Powered by .NET 8.0 on Kubernetes