欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C#从入门到精通 » 正文

1.4 创建图形应用程序(二)

创建时间:2013年08月15日 22:55  阅读次数:(3148)
分享到:
没有写一行C#代码,就成功创建了一个图形应用程序。现在,这个程序还没有多大用处(很快我们就要自己写一些代码了),但Visual Studio实际已经自动生成了大量代码,这些代码负责执行所有GUI程序都必须执行的一些常规任务,例如启动和显示一个窗体等等。在添加自己的代码之前,有必要知道Visual Studio自动生成了什么代码。

在解决方案资源管理器中,展开MainWindow.xaml会看到MainWindow.xaml.cs文件。双击这个文件,窗体的代码就会出现在代码和文本编辑窗口中,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WPFHello
{
/// <summary >
/// MainWindow.xaml 的交互逻辑
/// </summary >
 
public partial class MainWindow: Window
{
public MainWindow()
{
InitializeComponent();
}
}
}

除了大量using语句(这些using语句引入了大多数WPF应用程序都会用到的命名空间),文件中还包含了MainWindow类的定义。MainWindow类包含一个构造器,它调用了一个名为InitializeComponent的方法。仅此而已。(构造器是一种特殊的方法,具有和类相同的名字,在创建类的实例时执行,包含用于初始化实例的代码。第7章将详细介绍构造器。)事实上,应用程序还包含了其他许多代码,但大部分代码都是根据窗体的XAML描述来自动生成的,它们已经自动隐藏起来了。这些隐藏代码执行的操作包括创建和显示窗体,以及创建和定位窗体上的各个控件,等等。

在这个类中,可以添加自己的方法来处理应用程序的逻辑,例如指定当用户单击OK按钮后发生的事情。

提示:还可右击设计视图的任意位置,然后从弹出的快捷菜单中单击?查看代码?,从而显示WPF窗体的C#代码文件

此时,你可能会想,Main方法在哪里?应用程序运行时,窗体是如何显示的?我们知道,Main方法定义了程序的入口点。在解决方案资源管理器中,你还会注意到另一个源文件,即App.xaml。双击此文件,就会显示它的XAML描述。在XAML代码中,有一个名为StartupUri的属性,它引用了MainWindow.xaml,如以下粗体代码所示。
<Application x:Class="WPFHello.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml" >
<Application.Resources >
</Application.Resources >
</Application >

单击XAML窗格底部的“设计”标签,会显示App.xaml的设计视图,其中显示了一条消息:“有意留为空白。可视化设计器不支持此文档根元素。”这是由于不能用“设计视图”窗口来修改App.xaml文件。单击“XAML”标签返回XAML窗格。

在解决方案资源管理器中,展开App.xaml,还会看到一个App.xaml.cs文件。双击这个文件,会发现其中包含以下代码:
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace WPFHello
{
/// <summary >
/// App.xaml 的交互逻辑
/// </summary >
public partial class App : Application
{
}
}

同样地,该文件也有大量using语句,但其他内容很少,甚至没有Main方法。但事实上,这里是有Main方法的,只是它也隐藏起来了。Main方法的代码是根据App.xaml文件中的设置来生成的;具体地说,Main将创建并显示由StartupUri属性指定的窗体。如果想显示一个不同的窗体,编辑App.xaml文件即可。

现在是时候写一些自己的代码了!为OK按钮编写代码
1,单击“代码和文本编辑器”窗口上方的“MainWindow.xaml”标签,在设计视图中显示MainWindow。

2,双击窗体上的OK按钮。随后,MainWindow.xaml.cs文件会出现在“代码和文本编辑器”窗口中,但已经被加入了一个新的方法,名为ok_Click。Visual Studio会自动生成代码,以便在用户单击OK按钮后调用这个方法。这就是事件的一个例子,随着本书的深入,事件的工作原理将逐步清晰。

3,在ok_Click方法中,添加以下加粗的代码: 
private void ok_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello " + userName.Text);
}

用户单击OK按钮后,就会运行上述代码。这段代码的语法目前不必过于深究(只需确定输入的代码和上述代码完全一致),我们将在第3章学习方法。在上述代码中,最有意思的是MessageBox.Show语句。该语句显示了一个消息框,其中包含文本"Hello ",后面是用户在文本框中输入的任何文本。

4,单击窗口上方的MainWindow.xaml标签,在设计视图中显示MainWindow。

5. 在位于底部的窗体XAML描述中,检查Button元素,但注意不要进行任何改动。请注意,它现在包含了一个名为Click的元素,该元素引用了ok_Click方法:如下所示:
<Button Height="23" … Click="ok_Click"/ >

6,在“调试”菜单中,选择“开始执行(不调试)”命令。

7,在随后出现的窗体中,在文本框内输入自己的名字,然后单击OK按钮。随后会出现一个消息框,用输入的名字来欢迎。


8,在消息框中单击OK按钮。随后,消息框会关闭。

9,关闭窗体。

本章讲述了如何使用Visual Studio 2010创建、生成和运行应用程序。我们创建了一个控制台应用程序,在一个控制台窗口中显示它的输出。还创建了一个WPF应用程序,它有一个简单的图形用户界面。

如果希望继续学习下一章的学习,请继续运行Visual Studio 2010,然后阅读第2章。 

如果希望现在就退出Visual Studio 2010,请选择“文件”|“退出”。如果看到“保存”对话框,请单击“是”保存项目。

第1章快速参考
目标 操作
使用Visual Studio 2010 标准版或专业版创建一个新的控制台应用程序 选择“文件”|“新建”|“项目”,从而打开“新建项目”对话框。在左边的“已安装的模板”窗格中选择“Visual C#”,在中间的窗格中选择“控制台应用程序”。在“位置”框中为项目文件选择一个目录。为项目输入一个名称。单击“确定”。
使用Visual C# 2010学习版创建一个新的控制台应用程序 选择“文件”|“新建项目”,从而打开“新建项目”对话框。模板选择“控制台应用程序”。为项目输入一个名称。单击“确定”。
用Visual Studio 2010标准版或专业版创建一个新的图形化应用程序 选择“文件”|“新建”|“项目”,从而打开“新建项目”对话框。在左边的“已安装的模板”窗格中选择“Visual C#”,在中间的窗格中选择“WPF应用程序”。在“位置”框中为项目文件选择一个目录。为项目输入一个名称。单击“确定”。
使用Visual C# 2010学习版创建一个新的图形化应用程序 选择“文件”|“新建项目”,从而打开“新建项目”对话框。模板选择“WPF应用程序”。为项目输入一个名称。单击“确定”。
生成应用程序 选择“生成”|“生成解决方案”
运行应用程序 选择“调试”|“开始运行(不调试)”
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论1条
  • #1楼  评论人:学习  评论时间:2014-4-21 9:05:03
  • 很好写的很详细
发表评论:
留言人:
内  容:
请输入问题 96+47=? 的结果(结果是:143)
结  果: