silverlight:学Silverlight 2系列(6):键盘事件处理

  概述  Silverlight 2 Beta 1版本发布了无论从Runtime还是Tools都给我们带来了很多惊喜如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython对JSON、Web Service、WCF以及Sockets支持等系列新特性步学Silverlight 2系列文章带您快速进入Silverlight 2开发

  本文为系列文章第 6篇介绍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 Page : UserControl
{
  public Page
  {
    InitializeComponent;
    this.ellipse.KeyUp KeyEventHandler(ellipse_KeyUp);
    this.ellipse.KeyDown KeyEventHandler(ellipse_KeyDown);
  }
  private void ellipse_KeyUp(object sender, KeyEventArgs e)
  {
  }
  private void ellipse_KeyDown(object sender, KeyEventArgs e)
  {
  }
}
使用事件参数KeyEventArgs  使用事件参数可以获取到事件数据可以使用属性有Key、PlatformKeyCode、Handled、Source

private void ellipse_KeyUp(object sender, KeyEventArgs e)
{
   (e.Key Key.R)
  {
    //......
  }
   (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)
{
   (e.Key != Key.Unknown)
  {
    String msg = "The key " + e.Key.;
    msg " was pressed while focus was _disibledevent="学Silverlight 2系列(6):键盘事件处理" />

  结束语  有关键盘事件都简单介绍到这儿希望对大家有用

Tags:  silverlight2 silverlight.2.0 silverlight是什么 silverlight

延伸阅读

最新评论

发表评论