在之前的一篇文章中,介紹了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));
},
// 鍵按下的事件處理方法.
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運作效果如下所示:

好了,今天的内容就到這裡了。
源碼下載下傳,請點選這裡:)