一步一步学Silverlight 2系列(6):键盘事件处理
生活随笔
收集整理的這篇文章主要介紹了
一步一步学Silverlight 2系列(6):键盘事件处理
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
概述
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> 或者在代碼中注冊(cè):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ì)大家有用。轉(zhuǎn)載于:https://blog.51cto.com/terrylee/67225
總結(jié)
以上是生活随笔為你收集整理的一步一步学Silverlight 2系列(6):键盘事件处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: (转)Solaris 10 的基本操作
- 下一篇: Ajax+asp.net无刷新验证用户名