第06課 鍵盤事件處理

2021-08-24 19:51:53 字數 2254 閱讀 7052

本文為系列文章第六篇,介紹silverlight中的鍵盤處理事件,在silverlight 2中,支援keydown和keyup兩個事件。

所有的事件宣告過程都是一樣的,在xaml中或者是在**中進行註冊。

<

canvas x:

name

="layoutroot"

background

="#46461f">

<

ellipse x:

name

="ellipse"

width

="120"

height

="120"

fill

="orange"

canvas.top

="50"

canvas.left

="160"

stroke

="white"

strokethickness

="2"

keyup

="ellipse_keyup"

keydown

="ellipse_keydown"/>

canvas

>

或者在**中註冊:

public partial class 

page : usercontrol

private void ellipse_keyup(object sender, keyeventargs e)

private void ellipse_keydown(object sender, keyeventargs e)

}

使用事件引數可以獲取到事件資料,可以使用的屬性有key、platformkeycode、handled、source。

private void ellipse_keyup(object sender, keyeventargs e)

else if(e.key == key.ctrl && e.key == key.u)

}

在事件資料中,handled有時候非常有用,可以用來判斷事件是否已經處理。

鍵盤事件keydown和keyup都支援路由事件,如下面的示例。

<

canvas x:

name

="layoutroot"

background

="#46461f"

keyup

="layoutroot_keyup">

<

textbox x:

name

="textbox"

width

="200"

height

="40"

canvas.top

="80"

canvas.left

="80"/>

<

button x:

name

="button"

width

="100"

height

="40"

canvas.top

="80"

canvas.left

="280"

background

="red"

margin

="20 0 0 0"

content

="submit"/>

<

textblock x:

name

="status"

foreground

="white"

text

="status"

canvas.left

="80"

canvas.top

="200"/>

canvas

>

為canvas註冊了乙個keyup事件,編寫事件處理程式。

private void layoutroot_keydown(object sender, keyeventargs e)

}

執行程式,當文字框獲得焦點並輸入t時

按鈕獲得焦點

關於鍵盤事件都簡單的介紹到這兒,希望對大家有用。

第06課 服務閘道器

在服務提供者的 module 下建立 hellocontroller 類,新增內容如下 restcontroller public class hellocontroller 然後分別啟動服務註冊中心和服務提供者,瀏覽器輸入 http localhost 8762 index,即可看見如下畫面 在實...

linux 處理鍵盤 滑鼠事件

linux下滑鼠和鍵盤的模擬控制,也就是為手勢和語音控制滑鼠和鍵盤部分服務的。有關於本系統構建的文章結構都會由三個部分來組織,一是該功能模組的介紹和在linux下簡單應用程式的實現 二是將該功能模組整合到互動系統 先以tld為地基 中去 三是分析目前存在的問題與未來的解決構思。一 input子系統和...

第 06 課 搭建本地 Mock 服務

前後端分離的協作模式下,前後端之間的資料傳輸都是基於 http 介面實現。顯然前端的開發是依賴後端介面實現的。在講求快速迭代的網際網路公司這種序列的等待肯定是不會出現的。前後端約定好介面的出參和入參之後,前端資料模擬 mock 就很有必要了。前端基於介面文件自己模擬乙份假資料作為前端的資料來源。後端...