Silverlight中键盘事件的js开发

     在之前的一篇文章中,介绍了Silverlight中鼠标事件的js应用,因为这篇文章内容摘选自SDK,所
以就先暂放在新手区,算是给自己做了个备注吧:)

    下面是相应的xaml代码(KeyDown.xaml):   

< Canvas  xmlns ="http://schemas.microsoft.com/client/2007"  
        xmlns:x
="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Name
="myTextCanvas" >

  
< TextBox  Canvas.Left ="30"  Canvas.Top ="30"  Width ="200"  
   x:Name
="myTextBox"  Text =""   />

  
< TextBox  Canvas.Left ="30"  Canvas.Top ="80"  Width ="200"  
  x:Name
="myTextBox2"  Text =""   />
  
  
< TextBlock  Canvas.Left ="30"  Canvas.Top ="130"
    x:Name
="myTextBlock"  Text ="显示 KeyDown 事件参数"   />
</ Canvas >

    相应的js代码, 内容详见注释(KeyDown.js):   

Silverlight_JsWeb.KeyDown  =   function () 
{
}

Silverlight_JsWeb.KeyDown.prototype 
=
{
 handleLoad: 
function (plugIn, userContext, sender) 
 {
  
this .plugIn  =  plugIn;
  
  
//  按钮事件挂钩示例: 查找按钮,然后附加事件处理程序
  sender.findName( " myTextBox " ).addEventListener( " KeyDown " , Silverlight.createDelegate( this this .handleKeyDown));
  sender.findName(
" myTextBox " ).addEventListener( " GotFocus " , Silverlight.createDelegate( this this .handleGotFocus));
  sender.findName(
" myTextBox " ).addEventListener( " LostFocus " , Silverlight.createDelegate( this this .handleLostFocus));
  sender.findName(
" myTextBox " ).addEventListener( " KeyUp " , Silverlight.createDelegate( this this .handleKeyUp));
 },
/*  
keyEventArgs 参数说明:
    Key: 键值,整型类型。 
    PlatformKeyCode: 键盘按下的键值,整型类型。This value is the non-portable key code, which is operating system-specific.
    Shift: 是否按下了 SHIFT 键,Boolean类型.
    Ctrl: 是否按下了 Ctrl 键,Boolean类型.
*/

 
//  键按下的事件处理方法.
    handleKeyDown:  function (sender, keyEventArgs) 
    {        
        
var  textBlock  =  sender.findName( " myTextBlock " );

        
var  msg   =   " key:  "   +  keyEventArgs.key  +   " /r/n " ;
            msg 
+=   " platformKeycode:  "   +  keyEventArgs.platformKeyCode +   " /r/n " ;
            msg 
+=   " shift:  "   +  keyEventArgs.shift +   " /r/n " ;
            msg 
+=   " ctrl:  "   +  keyEventArgs.ctrl +   " /r/n " ;
            
        textBlock.Text 
=  msg;
    },
    
// 得到输入焦点的处理方法
    handleGotFocus:  function (sender, keyEventArgs)
    {
        sender.findName(
" myTextBlock " ).Text  =   " 得到焦点 " ;
    },
    
// 失去输入焦点的处理方法
    handleLostFocus:  function (sender, keyEventArgs)
    {
        sender.findName(
" myTextBlock " ).Text  =   " 失去焦点 " ;
    },
    
//  键弹起的事件处理方法
    handleKeyUp:  function (sender, keyEventArgs)
    {
        
//  判断是否按下 CTRL+V 组合键.
         if  ((keyEventArgs.key  ==   51 &&  (keyEventArgs.ctrl  ==   true ))
        {
            
//  返回插件引用.
             var  plugin  =  sender.getHost();

            
//  检测是否是sivlerlight 2.0版.
            sender.findName( " myTextBlock " ).Text  =   " Silverlight 2.0:  "   +  plugin.isVersionSupported( " 2.0 " );
        }
    }
}

    其Demo运行效果如下所示:

          
    
    
     好了,今天的内容就到这里了。   
    
     源码下载,请点击这里:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值