在以前的一篇文章中,介紹了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運行效果以下所示:
好了,今天的內容就到這裏了。
×××,請
點擊這裏:)