加载中...
QQ群:3790902 | 设为首页 | 加入收藏 | sitemap |
 
初级 程序员 网管员 信处技 电商技 中级 数工 软测 监理师 多媒体设计师 软设 信息系统管理 嵌入式 电商设 网工 系统集成 高级 系统分析 网络规划 项目管理 系统架构
数据库 操作系统 数据结构 软件工程 计算机系统 语言 网络 多媒体 标准化 计算机图形学 电子商务 数据挖掘 编译原理 信号处理
VB C\C++ Java ASP PHP JSP Access MSSQL Mysql Oracle DB2 Sybase Delphi 片上系统
Ajax .net Perl Pascal ODS XML 云计算 P2P 工作流 快速工具 设计模式 异构数据 统一过程 软件架构
供应链 ERP CRM UML CMM J2EE 中间件 EAI 产品线 商业智能 极限编程 多核技术 外包ASP SOA
PB WEB Service WSDL UDDI SOAP TSP 虚拟化 AOP SaaS 论文 网格计算 普适计算 敏捷方法 RIA

Net Micro Framework中的Shapes命名空间

2011-1-4 14:05:57 不详 佚名 【字体:

核心提示:在Microsoft.SPOT.Presentation.Shapes命名空间下,包含几个形状对象,主要有Ellipse、Line、Polygon、Rectangle,同样也只有Rectangle实现的最好,其他形状都不支持填充色,虽然每个对象都有Fill属性。 试验平台:.Net Micro Framework 模拟器 在Microsoft.SPOT.Presentation.Shapes命名空间下,包含几个形状对象,主要有Ellipse、Line、Polygon、Rectangle,同样也只有
    在Microsoft.SPOT.Presentation.Shapes命名空间下,包含几个形状对象,主要有Ellipse、Line、Polygon、Rectangle,同样也只有Rectangle实现的最好,其他形状都不支持填充色,虽然每个对象都有Fill属性。

    试验平台:.Net Micro Framework 模拟器

    在Microsoft.SPOT.Presentation.Shapes命名空间下,包含几个形状对象,主要有Ellipse、Line、Polygon、Rectangle,同样也只有Rectangle实现的最好,其他形状都不支持填充色,虽然每个对象都有Fill属性。

    让人奇怪的是,每个形状对象都不能设置left和top坐标,仅能设置宽度和高度,用起来很不习惯。

    StackPanel类是Panel的派生类,从字面意思上看,就是可以堆叠的面板。意如其名,它可以包含多个子对象,不过每一对象都不能重叠,以特有的方式堆叠在一起。

    有如下几个属性方法控制堆叠方式:

    1、              Orientation属性,有两种方式:Orientation.Horizontal,Orientation.Vertical。设置该属性后,StackPanel的子对象的坐标系就会发生变化(很可惜字体的方向并没有从根本上改变)。

    2、              HorizontalAlignment、VerticalAlignment属性,设置子对象的堆叠方式。枚举定义如下。

    public enum HorizontalAlignment

    {

    Left = 0,

    Center = 1,

    Right = 2,

    Stretch = 3,

    }

    public enum VerticalAlignment

    {

    Top = 0,

    Center = 1,

    Bottom = 2,

    Stretch = 3,

    }

    3、               SetMargin方法,设置边界空白大小。

    完整的代码如下,

    using System;

    using Microsoft.SPOT;

    using Microsoft.SPOT.Input;

    using Microsoft.SPOT.Presentation;

    using Microsoft.SPOT.Presentation.Controls;

    using Microsoft.SPOT.Presentation.Media;

    using Microsoft.SPOT.Presentation.Shapes;

    namespace MFWindow

    {

    public class Program Microsoft.SPOT.Application

    {

    public static void Main

    {  

    //创建窗体

    WindowsDrawing win = new WindowsDrawing;         

    //程序运行

    new Program.Run(win);

    }

    internal sealed class WindowsDrawing Window

    {

    public  WindowsDrawing

    {

    this.Width = SystemMetrics.ScreenWidth;

    this.Height = SystemMetrics.ScreenHeight;

    //可设置显示方向(水平,垂直)

    //StackPanel panel = new StackPanel(Orientation.Vertical);

    StackPanel panel = new StackPanel(Orientation.Horizontal);

    //设置边界空白

    panel.SetMargin(10);

    //设置对象堆叠的方式

    panel.HorizontalAlignment = HorizontalAlignment.Center;

    panel.VerticalAlignment = VerticalAlignment.Center;

    this.Child = panel;

    //添加文本

    Text txt = new Text(Resources.GetFont(Resources.FontResources.small), yefan);

    //不能设置left,top坐标

    txt.Width = 100;

    txt.Height = 30;

    panel.Children.Add(txt);

    //添加不同的形状对象

    Shape[] shapes = new Shape[]

    {

    new Ellipse,

    new Line,

    new Polygon(new Int32[] { 0, 0,    10, 0,    10, 10,    0, 10 }),

    new Rectangle

    };

    //设置形状对象必要的参数(各对象不能重叠,只能堆叠在一起)

    foreach (Shape s in shapes)

    {

    s.Fill = new SolidColorBrush(ColorUtility.ColorFromRGB(0, 255, 0));

    s.Stroke = new Pen(Color.Black, 2);

    //不能设置left,top坐标

    s.Height = 40;

    s.Width = 40;

    panel.Children.Add(s);

    }             

    }

    }

    }

    }

    仅修改这句代码 StackPanel panel = new StackPanel(Orientation.Horizontal);中的参数就可以实现两种不同的效果,如下面两图所示: 

    点击浏览下一页 
    点击浏览下一页  

    总的来说,我觉得MF提供的图像对象还很不完善,不仅一些基本功能没有完成(如填充、线宽),并且无法设置形状对象的绝对坐标(left,top),同时总类也特别少,希望以后的版本中能有很大的提升。

相关阅读:

上一篇文章:在.Net Micro Framework中访问硬件
下一篇文章:没有了

网友评论:


图文信息
结合AJAX进行PHP开发之入门 用VS2005实现ASP.NET2.0移动开发
Sybase IQ 15新版发布 引领智能分析新时代 用Java代码处理本地对象的事件