如果我们使用Visual Studio 2005来开发一个XAML程序,可以直接选择一个WinFX模板来创建特定类型的WPF程序,Visual Studio会自动为该WPF程序创建相应的项目文件和应用程序清单。
在第1行代码处我们可以看到,在应用程序定义文件中我们使用了Application元素,并且用x:Class 属性指定了一个与之关联的C#不完全类(后一个程序清单的第14行代码所示),而后在程序编译时,会自动将应用程序定义文件和包含关联C#不完全类的代码后置文件这两部分结合在一起,从而创建一个完整的BrowserDemo命名空间下的App类,注意,BrowserDemo.App类是从WPF提供的System.Windows.Application类中派生的。第4行代码使用了StartupUri属性为该WPF程序指定首次运行程序时要加载的XAML页面文件。
在一个Browser Application类型的WPF程序中,我们可以添加多个XAML页面,并支持在这些页面间进行跳转和切换。
提示:
而App.xaml.cs的代码如下(可以通过App.xaml页面的Source按钮切换到源码试图):
01 using System;
02 using System.Windows;
03 using System.Windows.Navigation;
04 using System.Data;
05 using System.Xml;
06 using System.Configuration;
07
08 namespace BrowserDemo
09 {
10 /// <summary>
11 /// Interaction logic for App.xaml
12 /// </summary>
13
14 public partial class App : Application
15 {
16
17 }
18 }
|
Page1.xaml页面对应的XAML代码如下:
我们在第1行代码处用x:Class属性指定的BrowserDemo.App类是从WPF提供的System.Windows.Application类中派生的,并且用属性Title指定了该页面在呈现时的标题。第6-8行代码使用了一个Grid元素,微软推荐开发人员使用该元素来布局XAML页面上的各个界面元素,这是因为Grid元素在定位页面上的各个元素方面有着极大的灵活性,至于该元素的具体用法将在本章的后续章节进行介绍。
01 using System;
02 using System.Collections.Generic;
03 using System.Text;
04 using System.Windows;
05 using System.Windows.Controls;
06 using System.Windows.Data;
07 using System.Windows.Documents;
08 using System.Windows.Input;
09 using System.Windows.Media;
10 using System.Windows.Media.Imaging;
11 using System.Windows.Navigation;
12 using System.Windows.Shapes;
13
14 namespace BrowserDemo
15 {
16 /// <summary>
17 /// Interaction logic for Page1.xaml
18 /// </summary>
19
20 public partial class Page1 : Page
21 {
22
23 public Page1()
24 {
25 InitializeComponent();
26 }
27
28 }
29 }
|
现在我们在这个Browser Application的Page1.xaml页面上添加一个按钮,并对该按钮的单击事件添加一个事件处理方法以显示信息。首先我们在工具箱上拖拽一个Button控件,切换到XAML视图后,你会发现在<Grid>…</Grid>两元素之间添加了一个Button元素,我们可以设置其相应的属性,最终Page1.xaml的代码如下:
由于要处理按钮的单击事件,为此我们要编写相应的事件处理方法。其代码如下:
01 void ChangeMe(object sender, RoutedEventArgs eventArgs)
02 {
03 count++;
04 MyButton.Content = "You have clicked " + count + " times!";
05 }
|