|
概述
Silverlight 2 Beta 1版本發(fā)布了,無(wú)論從Runtime還是Tools都給我們帶來(lái)了很多的驚喜,如支持框架語(yǔ)言Visual Basic, Visual C#, IronRuby, IronPython,對(duì)JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步學(xué)Silverlight 2系列》文章帶您快速進(jìn)入Silverlight 2開發(fā)。
本文為系列文章第六篇,介紹Silverlight中的鍵盤處理事件,在Silverlight 2中,支持KeyDown和KeyUp兩個(gè)事件。
聲明事件
所有的事件聲明過(guò)程都是一樣的,在XAML中或者是在代碼中進(jìn)行注冊(cè)。
<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{ public Page() { InitializeComponent(); this.ellipse.KeyUp += new KeyEventHandler(ellipse_KeyUp); this.ellipse.KeyDown += new KeyEventHandler(ellipse_KeyDown); } private void ellipse_KeyUp(object sender, KeyEventArgs e) { } private void ellipse_KeyDown(object sender, KeyEventArgs e) { }}
使用事件參數(shù)KeyEventArgs
使用事件參數(shù)可以獲取到事件數(shù)據(jù),可以使用的屬性有Key、PlatformKeyCode、Handled、Source。
private void ellipse_KeyUp(object sender, KeyEventArgs e){ if (e.Key == Key.R) { //...... } else if(e.Key == Key.Ctrl && e.Key == Key.U) { //...... }}
在事件數(shù)據(jù)中,Handled有時(shí)候非常有用,可以用來(lái)判斷事件是否已經(jīng)處理。
鍵盤路由事件
鍵盤事件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注冊(cè)了一個(gè)KeyUp事件,編寫事件處理程序。
private void LayoutRoot_KeyDown(object sender, KeyEventArgs e){ if (e.Key != Key.Unknown) { String msg = "The key " + e.Key.ToString(); msg += " was pressed while focus was on " + (e.Source as FrameworkElement).Name; statusTextBlock.Text = msg; }}
運(yùn)行程序,當(dāng)文本框獲得焦點(diǎn)并輸入t時(shí)
按鈕獲得焦點(diǎn)
結(jié)束語(yǔ)
關(guān)于鍵盤事件都簡(jiǎn)單的介紹到這兒,希望對(duì)大家有用。
NET技術(shù):一步一步學(xué)Silverlight :鍵盤事件處理,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。