简单解决SilverLight禁止默认右键菜单带来的输入法问题
今天和群里朋友交流技术,很多朋友在用windowless=true禁止掉右键菜单,但是MSDN上已经指出,这样做将不支持IMF等,也就是说无法再调用中文输入法,看到有朋友给出解决方法,用HTML仿造一个TextBox悬浮在SL的TextBox之上,这样做步骤繁琐,而且页面拖动会出现问题,这里我介绍另外一种方法。
MouseRightButtonDown这类事件上其实除了我们自己定义的代码外,还要执行SL的一部分操作,例如,打开SL的的默认右键菜单,我们可以通过下面代码禁止它执行SL内部操作:
LayoutRoot.MouseRightButtonDown+=(sender,e)=>
{
e.Handled=true;
//自己的菜单
};
这里是MSDN的解释:获取或设置将路由事件标记为已处理的值。如果 Handled 的值为 true,则可以防止事件路由路径上的大多数处理程序再次处理同一事件。