千家信息网

如何解析.Net Micro Framework中的Shapes命名空间

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何解析.Net Micro Framework中的Shapes命名空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Microsof
千家信息网最后更新 2026年11月01日如何解析.Net Micro Framework中的Shapes命名空间

如何解析.Net Micro Framework中的Shapes命名空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

在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中的Shapes命名空间的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

对象 形状 坐标 属性 方式 方法 空间 不同 代码 内容 参数 方向 更多 空白 边界 问题 很大 必要 束手无策 为此 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 云信互联网科技有限公司 新华互联网科技学校 互联网科技会 互联网核心科技是什么 盈实互联网科技 互联网下的科技发展 互联网与新科技 互联网科技ppt模板 国外互联网科技网站 富国互联网科技创新基金 北京大学互联网科技怎么样 成都互联网科技公司100强 贵州叶脉互联网科技有限公司所属行业 注册互联网科技公司经营范围大全 卓翼科技产业互联网合作 四川互联网展示科技馆设计 富国互联网科技002692 艺电能源互联网科技有限公司招聘 高科技和互联网的现代国家 万易互联网科技有限公司 科技类的互联网平台 互联网之后的科技是什么 央行互联网金融科技公司 注册互联网科技公司经营范围大全 乌鲁木齐新华智原互联网科技学校 上海京穆互联网科技有限公司 山东大美朱楼互联网科技有限公司 艺电能源互联网科技有限公司招聘 株洲百竞科技的互联网营销顾问
0