开发手册 欢迎您!
软件开发者资料库

Silverlight - 输入处理

Silverlight输入处理 - 从概述,环境设置,入门,XAML概述,项目类型,固定布局,动态布局,约束与无约束布局,Silverlight和CSS,控件,按钮,内容模型,简单易用的步骤学习Silverlight列表框,模板,视觉状态,数据绑定,浏览器集成,浏览器外应用程序,应用程序,资源和部署,文件访问,视图模型,输入处理,隔离存储,文本,动画,视频和音频,打印。

在本章中,我们将学习如何在Silverlight应用程序中处理用户输入. Silverlight提供了一个功能强大的API,应用程序可以从各种设备(如鼠标,键盘和触摸等)获取输入.

输入类型

有几种不同的方式,用户可以与您的应用程序进行交互.最明显的方法是使用鼠标. Silverlight提供跟踪和减去的事件;

  • 鼠标移动

  • 按钮点击,

  • 轮活动

当然还有键盘,Silverlight也支持触摸屏输入.如果您熟悉Windows中的触摸支持,您知道触摸输入可以表示为提供详细信息的低级事件,也可以汇总为称为手势的高级事件.

鼠标事件

让我们开始看看Silverlight提供的鼠标输入事件.有些事件涉及鼠标指针的移动.

  • MouseMove 事件被引发任何时候指针在你已经附加处理程序的元素上移动时.

  • 你还得到 MouseEnter MouseLeave 事件通知您鼠标何时移入和移出元素.

以下是添加了ellipse和TextBlock的XAML代码.

                          

以下是不同鼠标输入事件的实现.

using System.Windows.Controls; using System.Windows.Input; using System.Windows.Media;  namespace MouseInput {    public partial class MainPage : UserControl {       public MainPage() {          InitializeComponent();       }            private void myEllipse_MouseEnter(object sender, MouseEventArgs e) {          mouseText.Text = "Mouse Enter";          myEllipse.Stroke = new SolidColorBrush(Colors.Blue);       }              private void myEllipse_MouseLeave(object sender, MouseEventArgs e) {          mouseText.Text = "Mouse Leave";          myEllipse.Stroke = new SolidColorBrush(Colors.Black);        }              private void myEllipse_MouseMove(object sender, MouseEventArgs e) {          mouseText.Text = "Mouse Move: " + e.GetPosition(myEllipse);        }     }}

编译并执行上述代码时,您将看到以下输出./p> 鼠标输入

当鼠标进入椭圆时,你会看到改变颜色和坐标.

更改坐标

当鼠标离开时椭圆,它将显示消息'鼠标离开'并将更改为默认颜色.

鼠标离开

键盘

用户在应用程序中输入文本数据的最简单方法是通过键盘(如果有).请记住,并非所有移动设备都有键盘,笔记本电脑和台式机除外.

  • Silverlight为键盘输入提供两个简单的事件, KeyUp KeyDown .

  • 这两个都将 KeyEventArgs 传递给处理程序,Key属性指示按下了哪个键.

  • 在下面的示例中,处理了一些键盘输入.

  • 以下示例定义Click事件的处理程序和 KeyDown 事件的处理程序.

下面给出了添加不同UI元素的XAML代码.

                                        

下面给出了处理不同键盘和点击事件的C#代码.

using System.Windows; using System.Windows.Controls; using System.Windows.Input;  namespace KeyboardInput {   public partial class MainPage : UserControl {       public MainPage() {          InitializeComponent();       }       private void OnTextInputKeyDown(object sender, KeyEventArgs e) {          if (e.Key == Key.O) {             handle();             e.Handled = true;          }       }       private void OnTextInputButtonClick(object sender, RoutedEventArgs e) {          handle();          //e.Handled = true;       }       public void handle() {          MessageBox.Show("Do you want to open a file?");       }     } }

编译并执行上述代码时,您将看到以下 :

KeyEventArgs

如果单击打开按钮或单击文本框并单击确定,然后它将显示相同的消息.

显示相同的消息

我们建议您执行上面的示例以便更好地理解.