千家信息网

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

发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,如何解析.Net Micro Framework中的Shapes命名空间,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Microsof
千家信息网最后更新 2025年11月10日如何解析.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安全错误 数据库的锁怎样保障安全 校园网络安全学习感想 奔腾云服务器 宜宾软件开发解决方案 租用服务器会影响速度吗 饥荒服务器怎么换角色代码 荆州串口服务器厂家 文明重启怎么清除服务器 买别人服务器安全吗 e家秋月之光服务器文件夹 工业互联网爱联科技有限公司 如何理智面对网络安全 服务器怎么搭建机场 超级群英传服务器维护 svn搭建局域网服务器 数据库四大基本类型 怎样比较软件开发方案 数据库 域指的是什么意思 网络安全公益大讲堂在贵阳开课 软件开发和大数据分析哪个难 网络技术与应用本科论文题目 长寿区一站式软件开发流程要求 软件开发岗位工龄 鲲鹏服务器什么时候可以做 为什么要先进行数据库设计 韩服服务器处于脱机状态 银行软件开发中心笔试题目 宁晋县医院服务器网址 网络技术实验室建设项目 黄岛区管理系统软件开发哪家好 山西新一代软件开发过程检测中心
0