走进WPF系列学习之一 如何建立、设计、执行与部署WPF应用程序
2012-01-12 16:19 哒不溜 阅读(2686) 评论(5) 编辑 收藏 举报近在公司要用WPF做一个项目,以前都没有怎么接触过WPF,所以在接下来的一段日子里,我要好好研究研究WPF。我会把我在的学习过程,和学习心得记录下来。一方面是对自己学习的总计,另一方面也可以让像我一样刚刚接触WPF的同志们一个借鉴吧!好了下面正式开始吧。
简介 |
WPF 为Windows Presentation Foundation的缩写 ,意思是基于windows的图形界面处理,其原来代号为“Avalon”,因“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”。由 .NET Framework 3.0 开始引入,并且在以后的版本中都支持WPF,与 Windows Presentation Foundation及 Windows Workflow Foundation并行为新一代 Windows 操作系统以及 WinFX 的三个重大应用程序开发类库。WPF是微软新一代图形系统,运行在.NET Framework 3.0即以上架构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。(摘自百科)
WPF中主要是用基于XML的XAML语言来实现展示的。
何谓XAML |
可扩展应用程序标记语言 (XAML) 是一种声明性语言。具体来说,XAML 可以通过使用一种语言结构来显示多个对象之间的分层关系,并使用一种后备类型约定来支持类型扩展,以初始化对象并设置对象的属性。您可以使用声明性 XAML 标记创建可见用户界面 (UI) 元素。然后,您可以使用单独的代码隐藏文件来响应事件和处理您在 XAML 中声明的对象。
XAML 文件是通常具有 .xaml 文件扩展名的 XML 文件。下面的实例演示了非常基本的XAML文件的内容:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Margin="44,104,44,101" Name="button1" Click="button1_Click">Button</Button>
<Button Margin="44, 20, 44, 200" Name="button2">Hello</Button>
</Grid>
</Window>
如何建立WPF应用程序 |
1.启动Visual Studio 2010,选择WPF Application,如图:
在图中标出来的两种方式,其实都是用XMAL来表现的,只不过是浏览的方式不一样。下面我把两种形式都列举出来了,并且相应Demo的源代码都可以下载:
第一:WPF Application也就是C/S模式,跟Winfrom应用程序很相似,大家可以借助与对Winform 的理解来理解WPF Application应用程序。
在新建“WPF Application”项目后,呈现出来的是:
在屏幕中被分成了上、下两部分,大家看起来一定很收悉把。下面就是用XAML语言表示的,同时它也可以用来控制上面的表现形式。
后台代码:
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 WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
下面就举一个小例子,在Design中放入两个Button:
XAML代码:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Margin="44,104,44,101" Name="button1" Click="button1_Click">Button</Button>
<Button Margin="44, 20, 44, 200" Name="button2">Hello</Button>
</Grid>
</Window>
大家看到这里可能会有一种即收悉有又陌生的感觉,对,不错没有看到<asp:Button........................./>这样的button。这就是XAML的魅力。我们可以通过设置button的属性来控制Button的各种显示,同时也可以编写button的Click事件:
private void button1_Click(object sender, RoutedEventArgs e)
{
button1.Content = DateTime.Now.ToShortTimeString();
}
现在要设置Button上面显示的文字后面的属性不再是Text而变成了现在Content;这个Click事件的功能是:当点击这个按钮时按钮上面的文字就变成了当前时间。运行结果如图:
这里Demo很简单,大家可以试着自己动手做一下。WPF Application 源码下载
第二:WPFBrowserApplication 应用程序
B/s模式和WebFrom很相似,大家可以参考自己对asp.net的理解来理解.由于程序很简单所以就不详细讲解了,我把它们最后运行的结果展现给大家看看:
我个人QQ:1791786556
讨论QQ群:
WPF学习交流:699150554
WPF/UI 界面开发:527847154
WPF控件编程:699191787