你的位置:首页 > 软件开发 > ASP.net > 跟我一起学WPF(0):初识WPF

跟我一起学WPF(0):初识WPF

发布时间:2015-04-19 18:03:10
WPF是什么WPF是微软的新一代图形引擎系统,全称为Windows Presentation Foundation,从.NET3.0版本开始引入,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法,它提供了统一的编程模型、语言和框架,真正做到了分离界界面设计人员与 ...

跟我一起学WPF(0):初识WPF

WPF是什么

WPF是微软的新一代图形引擎系统,全称为Windows Presentation Foundation,从.NET3.0版本开始引入,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法,它提供了统一的编程模型、语言和框架,真正做到了分离界界面设计人员与开发人员的工作,同时它提供了全新的多媒体交互用户图形界面。

WPF的核心理念是以数据驱动UI,传统的GUI界面都是由get='_blank'>windows消息通过事件传递给程序,程序根据不同的操作来表达出不同的数据体现在UI界面上,这样数据在某种程度上来说,受到很大的限制。WPF中是数据驱动UI,数据是核心,处于主动的,UI从属于数据并表达数据,是被动的。WPF数据第一,控件第二。

WPF能做什么

   WPF适合用于构建大型的桌面平台系统,比如我们目前熟知的开发工具Visual Studio,Blend,SqlServer客户端等的界面就是使用WPF技术实现。另外微软针对Windows App 10提出了适合跨设备应用程序开发的自适应控件方案(采用XAML-WPF的界面标记语言),相信WPF会在桌面应用程序开发方向走的更远。

WPF初体验

我们通过简单的两个示例,简单看一下WPF在界面表现及编程实现方面的优异之处,对WPF有一个最初的体验。

1、绘制一个圆角的控件/容器

爱美之心人皆有之,同样的功能实现,用户往往更关注的是界面表现,好的设计总是给人更多的吸引力,更有利于我们的产品推广。在实际的桌面程序开发过程中,经常会用到圆角布局,我们经常会把一些相关的控件或者图片放到一个圆角的容器中加以美化。假设我们需要得到一个如下图的界面(好吧,我承认并不美)。

WinForm下的实现方法大致如下:

a、添加一个Panel容器控件至窗体,并设置Panel的背景色为红色。

b、添加System.Drawing.Drawing2D命名空间引用,实现控件的圆角绘制方法。

    /// <summary>    /// 绘制圆角控件     /// </summary>    /// <param name="sender">要进行圆角绘制的控件对象</param>    /// <param name="p_1">主要是根据此参数确定边角点位置,可根据实际情况设置</param>    /// <param name="p_2">点与点之间连接线的弯曲程度</param>    private void Corner(Control sender, int p_1, double p_2)    {      GraphicsPath oPath = new GraphicsPath();      oPath.AddClosedCurve(        new Point[] {      new Point(0, sender.Height / p_1),      new Point(sender.Width / p_1, 0),       new Point(sender.Width - sender.Width / p_1, 0),       new Point(sender.Width, sender.Height / p_1),      new Point(sender.Width, sender.Height - sender.Height / p_1),       new Point(sender.Width - sender.Width / p_1, sender.Height),       new Point(sender.Width / p_1, sender.Height),      new Point(0, sender.Height - sender.Height / p_1) },(float)p_2);      sender.Region = new Region(oPath);    }

原标题:跟我一起学WPF(0):初识WPF

关键词:wpf

wpf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。