C#入门分享(九)——WPF开发
WPF(Windows Presentation Foundation)是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。WPF可以更方便的开发更漂亮的界面,并且可以比以前更好地将GUI设计和程序逻辑分离开来,使得有条件的公司可以专门培养平面设计人员进行GUI设计(有点类似于与网页美工),而程序员更加关注业务逻辑。
下面让我们通过具体的操作和代码来了解WPF的开发。
打开Visual Studio(我的版本是VS2013 Ultimate)创建一个WPF工程,工程名为WpfApplication1。这个工程新建好了以后,就创建了一个窗口应用程序。现在只有一个窗口,窗口标题为默认的Window1。下面是运行的结果:
理解XAML
XAML全称为Extensible Application Markup Language 。XAML可以用来编写WPF,但是也可以做很多其他的事情。每个WPF程序都有一个Application对象,该对象代表了整个应用程序,它总是有一个static Main方法。如何编写一个Application类有多种方法,App.xaml内容如下:
Application元素的x:Class属性的值为WpfApplication1名字空间里面的类App。该类的定义如下:
我们并不需要写static Main方法,编译器替我们生成了。 App.xaml中的Application元素还有一个属性StartupUri指定了应用程序开始运行时显示的第一个窗口MainWindow。MainWindow.xaml文件内容如下:
MainWindow继承了System.Windows.Window类。InitializeComponent()方法的主要作用是读取MainWindow.xaml文件中指定的Window元素的属性值。
添加两个控件,并理解事件处理机制
现在添加一个文本控件和一个按钮,当按钮点击后,文本控件的内容将被修改。通过Toolbox拖拽TextBox和Button到MainWindow窗口上。现在的MainWindow.xaml文件内容变成:
效果如下:
双击 TextBox和Button,Visual Studio就会在自动在MainWindow.xaml.cs中生成对应控件的处理时间方法:
这里仍然使用委托机制来实现事件回调。sender就代表事件源,这里其实就是MainWindow对象自己。RoutedEvnetArgs e可以让我们获得事件的相关信息。我们定义TextBox的name为TextBox1,然后在Button_Click()函数里添加:
TextBox1.Text = "欢迎来到WPF";
这样点击按钮后就会弹出一个消息框。
到这里,一个麻雀虽小,但是五脏俱全的例子程序就完成了,点击按钮效果如下:
Toolbox里还有很多的控件,比如Grid,Image,TextBlock,ListView等,大家都可以一一尝试,这样学起来会更有效果。关于WPF的入门,这次就先简单介绍到这,以后有时间还会在博客中和大家深入探讨WPF。下一篇博客将为大家介绍Windows App的开发。