如何正确实现.Net Framework窗体的创建

开发 后端
.Net Framework窗体的创建可以通过本文介绍的相关步骤来一一操作。初学者可以通过实践编写来充分的掌握这一应用技巧。

.Net Framework开发环境对于开发者来说是非常重要的。我们可以通过它轻松的进行代码的各种编写。在这里就为大家介绍一下.Net Framework窗体的创建方法,希望能对又需要的朋友带来一些帮助。#t#

正像 .Net Micro Framework SDK中介绍的那样,开发一个.Net Micro Framework应用程序就像开发一个WinForm程序一样,而开发WinForm程序的核心技术就是一个一个的Form窗体,但是在.Net Micro Framework程序中新建WinFrom程序并不像建立Windows PC Form 那样可以直接添加一个窗体,并且在上面拖拽控件。因此,下面讲解如何在.Net Micro Framework新建一个窗体,并执行基本操作。

1. 创建.Net Framework窗体:

新建Windows Form 窗体时除了直接点击添加一个From外,也可以新建一个类继承自Window类,而在.Net Micro Framework 这种没有UI的开发模式下,正是通过第二种方式实现的。只要新建一个类继承自Microsoft.SPOT.Presentation.Window即可。

2. 重绘.Net Framework窗体内容:

在Windows Form中为了让自己的窗体与众不同,重绘是会被经常用到的。可以重写其OnPaint(PaintEventArgs e) 方法,并通过e.Graphics得到Graphics进行窗体的重绘。而在.Net Micro Framework 中需要重写的则是OnRender(DrawingContext dc)方法。在方法中就可以使用dc直接划出各种图形了。(在用dc画圆的时候不知怎么一直是空心的,很奇怪的问题)
再有只有当窗体的大小不为0时并且处于显示状态,才会调用该方法,因此在窗体的初始函数中一般要加入如下代码。

Code

 

  1. this.Height = SystemMetrics.ScreenHeight;  
  2. this.Width = SystemMetrics.ScreenWidth;  
  3. this.Visibility = Visibility.Visible; 

其中SystemMetrics.ScreenHeight、SystemMetrics.ScreenWidth表示取单片机屏幕的宽高。

如果想强行再次掉用OnRender方法,就需要调用Invalidate()方法进行刷新。(这里好像只支持整体刷新,并不象WinForm中支持局部刷新)

3. .Net Framework窗体的显示

.Net Micro Framework 中窗体的显示与Windows Form有着一定的区别,它并不像Windows Form要先new 出一个窗体出来,再调用Show或是ShowDialog方法进行显示,而在new的同时就会把窗体显示出来。

而窗体的关闭就十分简单了,只需要调用Close()方法即可。

既然,现在有了.Net Framework窗体下个专题将讲述如何在上面增加一些必要的控件,Text,Image,以及如何使用按钮进行控制。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-22 13:08:50

VB.NET创建数组

2010-01-06 14:22:29

.NET Framew

2010-01-15 16:03:48

VB.NET重载Win

2009-12-15 14:09:39

Ruby创建可参数化类

2009-12-21 10:09:26

WCF创建客户端服务对

2009-12-03 11:11:57

PHP网站优化

2009-12-29 18:09:00

Silverlight

2010-02-25 10:10:29

WCF使用Header

2010-02-25 13:48:23

WCF动态创建代码

2009-12-04 12:51:27

PHP functio

2009-12-11 17:52:21

PHP获取博客数据

2009-12-07 18:42:55

PHP与Javascr

2010-01-14 17:52:54

VB.NET显示系统信

2009-12-09 16:49:09

PHP显示文章发布时间

2010-06-09 09:34:11

2009-12-08 14:31:31

PHP命令行读取参数

2010-03-04 11:12:02

Python AOP

2010-03-04 15:12:33

Python算法

2010-04-29 17:31:56

Oracle存储过程

2010-02-24 10:07:48

WCF跨越边界
点赞
收藏

51CTO技术栈公众号