wpf和winform的区别

wpf和winform的区别,第1张

1、来源不同

WPF是微软推出取代winform的产品,能分离界面设计人员与开发人员。

WinForm创建丰富的基于Windows的应用程序。

2、底层使用情况不同

WPF底层使用的DirectX,winform底层使用的是GDI+。

3、曲线学习情况不同

Winform的学习曲线较少,而WPF需要更多的学习曲线来理解控件和设计部分的完整流程。

4、开发应用程序情况不同

Winform在开发应用程序时更易于使用,而WPF使用起来有点困难,因为它需要良好的知识才能使用控件。

5、控件情况不同

在Winform中,控件很难自定义,而在WPF中,控件可以轻松自定义,因为它完全是从头开始编写的。

6、数据绑定情况不同

Winform以有限的方式支持数据绑定,而WPF完全支持数据绑定。

注册┆登录┆发表文章

什么是winform

2007-01-02 18:36:53

大中小

Visual C#是微软公司Ner FrameWork框架中的一个重要组成部分,也是微软公司极力推荐的新一代程序开发语言。WinForm是Net开发平台中对Windows Form的一种称谓。Net 为开发WinForm的应用程序提供了丰富的Class Library(类库)。这些WinFrom 类库支持RAD(快速应用程序开发),这些类库被封装在一个名称空间之中,这个名称空间就是SystemWindowsForms。在此名称空间中定义了许多类,在开发基于Net的GUI应用程序的时候,就是通过继承和扩展这些类才使得我们的程序有着多样的用户界面。本文就试图通过一个最基本的类--Form,来具体说明一下用Visual C#开发WinForm程序的具体过程。

一.程序开发和运行环境及概括介绍

本问的所有调试程序都基于微软视窗2000专业版本和Net FrameWork Beta 2版。

二.第一个WinForm

如果你的机器已经达到了我们程序要求的运行环境,那就打开一个文本编辑器把下面的

程序代码拷贝到编辑器里面,然后另存为firstcs文件。通过下面的编译语句:

csc /t:winexe /r:systemdll firstcs

编译完成后。运行程序就可以看到以下界面:

程序源代码:firstcs

using System ;

//导入 WinForms 名称空间

using SystemWindowsForms ;

//Class Form1 继承并扩展 SystemWindowsForms名称空间中class Form

public class Form1 : Form

{

public static void Main()

{

//运行程序

ApplicationRun(new Form1());

}

}

小结:

1)首选要使用"using SystemWindowsForms"语句导入WinForm的名称空间

2)声明Form1 类,此类是继承、扩展了using SystemWindowsForms 名称空间中的Form 类

3)"Application"类,此类也被定义在using SystemWindowsForms名称空间中,由于此类封闭的,所有我们不能继承。"Application"类主要作用是运行和退出Windows的应用程序,还可以处理Windows的消息。调用"Application"类的"Run"方法表明将要开始运行应用程序。

三.做一个透明的WinForm

当我第一次在视窗2000中看到透明的窗体,就想做出这样一个窗体应该是非常难的。肯定要调用很多的API函数。当接触了Net以后,才发现用VisualC#做出一个透明的窗体是多么简单,只要设定一个值就可以了。下面还是让我们来看看通过以下代码生成的透明窗体到底是什么样。

透明窗体的源代码:secondcs

using System ;

using SystemWindowsForms ;

using SystemDrawing ;

public class Form2 : Form

{

public static void Main( )

{

ApplicationRun( new Form2( ) );

}

public Form2( )

{

thisLocation = new SystemDrawingPoint( 100 , 100 ) ;

thisCursor = SystemWindowsFormsCursorsHand;

// 定义在窗体上,光标显示为手形

thisText = "透明的WinForm窗体!";

// 定义窗体的标题名称

thisStartPosition = SystemWindowsFormsFormStartPositionCenterScreen;

// 定义窗体的开始显示位置是屏幕的中间

thisFormBorderStyle = SystemWindowsFormsFormBorderStyleFixed3D;

// 窗体的边界是Fixed3D类型

thisForeColor = SystemDrawingSystemColorsDesktop;

//以桌面的前景色作为窗体的前景色

thisFont = new SystemDrawingFont ( "宋体", 9 ) ;

// 定义字体类型,大小

thisBackColor = SystemDrawingColorBlue;

// 定义背景色为蓝色

thisClientSize = new SystemDrawingSize( 440 , 170 ) ;

// 设置窗体的大小

// Opacity属性设立窗体的透明程度,只对于视窗2000有效

thisOpacity = 060 ;

}

}

小结:

以上的代码其实和第一个例子的代码有很多相似,只是在Form2 Class中多定义了一些属性。

1)"this"关键字,我想大家都注意到了这个关键字,那么到底该如何理解他。举例如下:当我在自我介绍的时候(其实就是在定义我的属性),我会说"我的名字叫xx","我的年龄是xx","我的邮箱是xx"……你可能注意到"我的"这二个字,他就是指我本人--王天。同样的道理在程序设计中,"this"关键字就是指向一个对象的实例。所有在上面代码中"thisFont"、"thisText"就是在设定当前或者正在运行的Form2实例的属性。

2)再看看上面的代码,在程序中又导入了一名称空间--SystemDrawing。通过这个名称空间定义的类,就可以更好的设计对象,处理颜色和大小。

3)下面通过下表来具体说明一下在上面程序中设立的属性的具体含义。

属性 描述

Location 初始化WinForm的位置,就是当应用程序运行的时候,显示WinFrom的固定位置

Cursor 当光标在WinForm上面的时候显示的光标状态

Text 设定WinForm的标题

StartPosition 这个属性有点类似于"Location"属性,"Location"属性定义的是WinForm的绝对位置,而本属性定义的是WinForm的相对属性。本属性的值定义为"CenterScreen"、"Manual"、"WindoowsDefaultLocation"、"WindowsDefaultBounds"、"CenterParent"

FormBorderStyle 定义窗体的边界的样式。通常设定为,"FixedSingle"、"Sizable"、"FixedDialog"、"FixedToolWindow"、"SizableToolWindow"

ForeColor 定义窗体的前景色彩

thisAutoScaleBaseSize = new SystemDrawingSize( 8 , 16 ) ;

thisFormBorderStyle = SystemWindowsFormsFormBorderStyleFixed3D;

// 设定窗体的边界类型

thisForeColor = SystemDrawingSystemColorsDesktop;

thisFont = new SystemDrawingFont ("宋体", 10 , SystemDrawingFontStyleBold ) ;

// 设定字体、大小就字体的式样

thisSizeGripStyle = SystemWindowsFormsSizeGripStyleHide;

thisBackColor = SystemDrawingColorBlue;

// 设定背景色

thisClientSize = new SystemDrawingSize( 250 , 250 ) ;

//把标签加到窗体中

thisControlsAdd ( thislabel1 ) ;

}

}

四.做一个带一个组件的WinForm

本例子主要是介绍如何在WinForm中加入一个组件。如果你想在窗体中加入任何组件,首先,你必须要初始化这个组件(见下面程序中初始化Label一样)。并且使用"ControlsAdd"方法加入到窗体中,以下是程序运行的源代码。

源程序:threecs

using System ;

using SystemWindowsForms ;

using SystemDrawing ;

public class Form3 : Form

{

//定义一个标签

private Label label1 ;

public static void Main( )

{

ApplicationRun( new Form3( ) ) ;

}

// 构造

public Form3( )

{

// 建立标签并且初始化

thislabel1 = new SystemWindowsFormsLabel( ) ;

//先继承一个Label 类

label1Location = new SystemDrawingPoint( 24 , 16 ) ;

//设定 Label的显示位置

label1Text = "这是一个WinForm中的标签";

label1Size = new SystemDrawingSize ( 200, 50 );

//设定标签的大小

label1TabIndex = 0 ;

label1TextAlign = SystemDrawingContentAlignmentMiddleCenter;

// 设定标签的对齐方式

thisText = "在WinForm中加入一个标签!";

thisStartPosition = SystemWindowsFormsFormStartPositionCenterParent;

五.总结

以上是对用Visual C#开发WinForm应用程序进行了着重的介绍,由于在Net FrameWork Sdk中的SystemWindowsFroms名称空间中封装了许多关于界面设计的Class(类)。本文只能通过介绍一个基本的类--Form来了解一下Visual C#的强大功能和Net Class Library(类库)丰富的开发资源。通过本文也可以看出,要想充分利用Visual C#的强大功能,就必须了解并掌握Net Class Library。也只有掌握了Net Class Library,你所开发的Net程序功能才会强大,生命力才更强。

Font 定义放在WinForm上的字体的类型和大小

BackColor 定义窗体的背景色彩

ClientSize 定义WinForm的大小

Opacity 这个属性是定义WinForm的透明程度,并且这个属性只能用在视窗2000。属性的区值0-1,代表从完全透明到不透明。

它是一种WINDOWS应用程序,主要用于开发桌面应用程序,winform 指一个窗体 相当于控制台程序的类!这些话引用下。都是对的

说的白一点,有一些软件就是用winform窗体做的,类似金山,QQ等状态的,而不是网站

以上就是关于wpf和winform的区别全部的内容,包括:wpf和winform的区别、在我电脑自运行项里有个 winform 是什么、C# winform是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9655567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存