Avalon应用程序
首先,选中Avalon应用程序模板并点击“确定”。你将看到默认的Window1.xaml窗口和图6所示的解决方案浏览器。
 图6:Avalon应用程序项目。这个截图显示了Visual Studio 为Avalon应用程序模板建立的模板 |
请注意,Avalon应用程序项目类型的根元素是Window。除了我们在上一部分讨论的StackPanel和DockPanel之外,你还可以使用Grid元素对窗口中的控件进行定位。Window1.xaml.vb是页面后台的代码,也是你编写应用程序代码的地方。Window元素中的x:Class属性指定了类的名称。在编译阶段,这个页面会被编译为一个局部(partial)类,与后台代码(Window1.xaml.vb)一起形成完整的应用程序。
复制列表1中的代码并替换Window1.xaml文件中的Grid元素。在Button元素中,增加Click属性并设置它的值(图7所示)。
 图7:设置点击事件。给Button(按钮)元素添加一个事件 |
从本质来看,你为按钮控件建立了一个事件处理程序。当按钮被点击的时候,ButtonClick事件会处理这个点击事件。如果你要完善这个事件,请双击解决方案浏览器中的Window1.xaml.vb。你会看到两个示例事件都被注释了。取消ButtonClick事件的注释并删除该事件处理程序末尾的Handles子句。ButtonClick事件现在应该是这样的:
' Button1的事件处理程序 Private Sub ButtonClick(ByVal sender As Object, ByVal e As RoutedEventArgs) End Sub |
对于这个例子来说,我们只需要简单地显示一个“Hello World!”消息,看看事件处理程序是否起作用了。在未来一些文章中我将仔细地解释这个特性。
' Button1的事件处理程序 Private Sub ButtonClick(ByVal sender As Object, _ ByVal e As RoutedEventArgs) ' 添加下面的内容 MsgBox("Hello World!") End Sub |
我们完成了!现在按F5运行应用程序。你将看到应用程序窗口,当你点击OK按钮的时候,会看到一个消息框(图8所示)。
 图8:测试应用程序,你的第一个Avalon应用程序 |
现在点击窗口上的“Page 2”链接,没有发生任何事情。这是因为Avalon应用程序项目类型不支持导航。你必须像传统的Windows应用程序一样打开新窗口。
停止调试并给应用程序添加一个新的Avalon窗口(在解决方案浏览器中右键点击项目名称,并选择添加->新项目)。选择Avalon窗口模板并添加“添加”(图9所示)。
 图9:放入一个窗体。这个截图显示了如何给项目添加一个新的Avalon窗体。 |
你的项目现在有两个窗口了(图10所示)——Window1.xaml和Window2.xaml。
 图10:两个窗体。它显示了项目中的文件。 |
应用程序中的每个窗体都有一组Window.xaml文件。
我们修改ButtonClick事件:
Private Sub ButtonClick(ByVal sender As Object, _ ByVal e As RoutedEventArgs) Dim win2 As New Window2 win2.Show() End Sub |
按F5调试应用程序并再次点击OK按钮。你现在会看到新窗口出现了(图11所示)。
 图11:下一个窗体。点击按钮打开一个新窗体。 |