技术开发 频道

WPF学习之路:从HelloWorld到WPF World

    【IT168 评论】有人说到,学习任何一种编程最困难的部分是“Hello World”。这一看似乎很可笑,仔细想来却未必。平时很多我们自认为很简单的东西也许恰恰是最困难的东西,比如C#中的一些基本概念,我们天天都在用,可你真的都理解他们吗?!对很多人来说恐怕要打个问号了。

  最近开始学习使用WPF,WPF是什么?网上有很多文章,在此就不赘述了。

  一切还是从“Hello World”开始,然而因为有了上面的经历,一切真的都变得不同了。

  Hello World

  如题,在优秀的IDE环境中,做一个简单的Hello World应用程序是如此的简单,仅仅用鼠标拖一个控件,在属性栏中输入“Hello World”,然后F5,OK,一切都完成了。

1
 

  这一切真的太简单了,就跟当年学习VB或C#一样,看起来没有任何不同,然而现在你还会说VB的Hello World与C#的Hello World是一回事么?!答案很显然。

  什么是Hello World

  有个笑话讲到,一个退休的程序员,退休后练习书法,提笔一挥,纸上赫然出现一行字——Hello World。第一个写“Hello World”的人也许是个天才。一粒沙中看世界,这个简单到一行代码甚至没有代码就能实现的程序向初学编程的人打开了一道便捷之门,给初学者足够的空间去思考有限的问题,一窥其后万千变化的世界。

  Hello World有什么

  Shift+F5,停止程序运行,让我们一起看看这个程序中有什么。先看文件结构:

1
 

  在解决方案资源管理器中,我们不难发现与WinForm相比,WPF程序多出了一种文件Xaml。先打开我们熟知的.cs代码文件,发现里面空无一物,

  甚至看不到承载Hello World的控件,结合Asp.Net的经验,我们在Xaml中发现了

<Grid>      <TextBlock Text="Hello World" />   </Grid>

 

  由此我们可以认为微软通过结合Asp.Net与WinForm的优点打造了全新的,而相比二者,WPF最核心的部分便是Xaml。

  发现Xaml

  那么什么是Xaml呢?MSDN中解释到:可扩展应用程序标记语言 (XAML) 是声明性应用程序编程标记语言,WPF提供对可扩展应用程序标记语言 (XAML) 语言支持,使WPF得以实现,这个解释有点抽象。事实上,如果有Asp.Net基础,我们则可以简单的认为WPF是以Asp.Net方式开发WinForm;如果有标记语言的基础,则可以简单认为Xmal以标记语言的方式实现WPF中的UI,然后由微软把UI和代码联系起来;如果什么都没有,那就把看到的网页关了,好好学习吧^_^。

  开启WPF World

  元素树

  我们知道,WPF的核心是Xaml。Xaml想做网页一样,将UI分割为不同大小的块,以一定方式组合,便成了我们看到UI基本框架,然后在通过美工的合作,成为最终呈现在我们面前的用户交互界面。Xaml中的每种元素代表UI上的一个基本元素,那么Xaml是以何种方式组织这些元素,并最终构成向用户交付的UI呢?看下图。

1
 

  如图所示,WPF以有序的方式按树形结构组合每个界面元素。界面中每个元素都有唯一的父节点,并可能有多个子节点。图中第3部分就是Hello World示例的树结构示意图。当然,WPF文档结构远比例子中复杂的多,不过作为入门,这些不在今天的讨论范围呢。 

3
相关文章