简单解决SilverLight禁止默认右键菜单带来的输入法问题

      今天和群里朋友交流技术,很多朋友在用windowless=true禁止掉右键菜单,但是MSDN上已经指出,这样做将不支持IMF等,也就是说无法再调用中文输入法,看到有朋友给出解决方法,用HTML仿造一个TextBox悬浮在SL的TextBox之上,这样做步骤繁琐,而且页面拖动会出现问题,这里我介绍另外一种方法。

      MouseRightButtonDown这类事件上其实除了我们自己定义的代码外,还要执行SL的一部分操作,例如,打开SL的的默认右键菜单,我们可以通过下面代码禁止它执行SL内部操作:

LayoutRoot.MouseRightButtonDown+=(sender,e)=>
                {
                    e.Handled=true;
                    //自己的菜单
                };
 


    这里是MSDN的解释:获取或设置将路由事件标记为已处理的值。如果 Handled 的值为 true,则可以防止事件路由路径上的大多数处理程序再次处理同一事件。

   

posted @ 2011-09-22 13:10  Lucifers  阅读(854)  评论(0编辑  收藏  举报