silverlight2自定义鼠标右键菜单,屏蔽原来右键菜单显示的内容,打造自己喜欢的菜单。

同flash一样,silverlight默认的右键菜单显示的内容也是关于这个插件的信息,要自定义silverlight右键菜单,其实也是很简单的。

首先需要自定义右键菜单的内容(当然你也可以根据需要,随时更改内容)

MouseRightMenu<Canvas x:Name="mouseRightMenu" Visibility="Collapsed" Background="White" Width="100" Height="100">
                <StackPanel Orientation="Vertical">
                    <TextBlock Text="复制"></TextBlock>
                    <TextBlock Text="粘贴"></TextBlock>
                    <TextBlock Text="剪切"></TextBlock>
                </StackPanel>
            </Canvas>

 

其次我们要屏蔽原有右键菜单的内容,并让自定义的菜单出现在鼠标右键点击的地方//因为是从项目中弄的一部分代码出来,因此有点乱,不过还好代码简单,大家应该看的懂

Title ContextMenuInterceptor _cmi = null;

pageload

{

     _cmi = new ContextMenuInterceptor(mouseRightMenu);

}

public class ContextMenuInterceptor
    {
        UIElement uiElement;
        public ContextMenuInterceptor(UIElement control)
        {
            uiElement = control;
            HtmlPage.Document.AttachEvent("oncontextmenu", this.OnContextMenu);
        }
        private void OnContextMenu(object sender, HtmlEventArgs e)
        {
            e.PreventDefault();//屏蔽原来右键菜单内容

            //显示自定义菜单的内容,当然,选择菜单内容后,菜单隐藏等效果也是需要在canvas上去触发的
            uiElement.Visibility = Visibility.Visible;
            //设置新的位置就可以了

        }
    }

这样,我们就实现了一个简单的自定义鼠标右键的方法了。具体的代码杂参考资料来源上有。

参考资料来源:http://silverlight.net/blogs/msnow/archive/2008/07/01/tip-of-the-day-14-how-to-right-click-on-a-silverlight-application.aspx

posted @ 2008-11-24 17:32  Leochen  阅读(2151)  评论(0编辑  收藏  举报