.Net Micro Framework研究—窗体控件

news/2024/6/27 7:51:01
 

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

 

Microsoft.SPOT.Presentation.Controls命名空间里,也就如下几个控件(姑且称为控件吧),PanelStackPanelTextTextFlowImageListBoxScrollViewer 其中仅有PanelTextImage控件完成度相对较好,其他的实现并不完整,甚至只是一个空接口。

下面是测试代码:

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.HorizontalAlignment = HorizontalAlignment.Left;

                panel.VerticalAlignment = VerticalAlignment.Top;                          

                this.Child = panel;

 

                //Text控件

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

                txt.Width = 100;

                txt.Height = 30;

                txt.ForeColor = Colors.Green;    

                panel.Children.Add(txt);

 

                //TextFlow控件 不支持滚动条,实现还不完整

                TextFlow txtf = new TextFlow();

                txtf.ScrollingStyle = ScrollingStyle.LineByLine;

                txtf.TextAlignment = TextAlignment.Left;

                txtf.Height = 200;

                txtf.Width = 50;

            

                for (int i = 0; i < 10; i++)

                {

                    txtf.TextRuns.Add(new TextRun("yefan123", Resources.GetFont(Resources.FontResources.small), Colors.Blue));

                    //注意:换行这么写,可不是/r/n

                    txtf.TextRuns.Add(TextRun.EndOfLine);

                    txtf.TextRuns.Add(new TextRun("yefan456", Resources.GetFont(Resources.FontResources.small), Colors.Red));

                    txtf.TextRuns.Add(TextRun.EndOfLine);

                    txtf.TextRuns.Add(new TextRun("yefan789", Resources.GetFont(Resources.FontResources.small), Colors.Green));

                    txtf.TextRuns.Add(TextRun.EndOfLine);

                }

                panel.Children.Add(txtf);         

 

                //image

                Image img = new Image();

                img.Bitmap = Resources.GetBitmap(Resources.BitmapResources.yfmvp);

                panel.Children.Add(img);

 

                //ListBox  仅实现了一个空接口

                ListBox lst = new ListBox();

                lst.Font = Resources.GetFont(Resources.FontResources.small);

                lst.Items.Add(new ListBoxItem());

                //panel.Children.Add(lst);

 

                //ScrollViewer 仅实现了一个空接口

                ScrollViewer sv = new ScrollViewer();

                sv.Width = 30;

                sv.Height = 50;

                //panel.Children.Add(sv);      

                //sv.Child = txtf;               

            }

        }

    }

}

目前版本的MFTCP协议栈支持也并不完善(对串口也谈不上完善,毕竟不支持奇偶校验、停止位设置),Digi的以太网口是加入了自己的处理方案,明年二月份微软将要发布的MF V3.0版,就已经完全支持TCP了,到时候MF最理想的应用也许就是通信转换了。

从本篇内容中可以看出,微软MF之旅尚在出发点不远的地方,MF研发人员任重而道远啊!





http://www.niftyadmin.cn/n/3655856.html

相关文章

.Net Micro Framework研究—绘图

试验平台&#xff1a;.Net Micro Framework 模拟器目前在VS2005的环境里&#xff0c;还不支持.Net Micro Framework界面的所见即所得绘制&#xff0c;界面制作有三种方式&#xff0c;一是窗体直接绘图&#xff0c;二是Panel形状对象、三是窗体控件。第一种做法让人觉得又回到了…

算法学习笔记----散列表

1.散列函数 散列函数&#xff1a;无论你给它什么数据&#xff0c;它都还你一个数字。 散列函数 将输入映射到数字。你可能认为散列函数输出的数字没什么规律&#xff0c;但其实散列函数必须满足一些要求。 1、它必须是一致的。例如&#xff0c;假如你输入apple时得到的是4&…

JavaScript -------- 数组1

一、创建数组 通过 [] 操作符声明一个数组变量&#xff1a; var numbers [ ] 得到一个长度为0的空数组。 可以通过内建的length属性 console.log(numbers.length) // 0 在声明数组变量时&#xff0c;直接在 [ ] 操作符中放入一组元素&#xff1b; var numbers [1,…

.Net Micro Framework研究—Shapes命名空间

试验平台&#xff1a;.Net Micro Framework 模拟器在Microsoft.SPOT.Presentation.Shapes命名空间下&#xff0c;包含几个形状对象&#xff0c;主要有Ellipse、Line、Polygon、Rectangle&#xff0c;同样也只有Rectangle实现的最好&#xff0c;其他形状都不支持填充色&#xff…

JavaScript -------- 数组2

迭代器方法 这些方法对数组中的每个元素应用一个函数&#xff0c; 可以返回一个值、 一组值或者一个新数组。 1 不生成新数组的迭代器方法 forEach()&#xff0c; 该方法接受一个函数作为参数&#xff0c; 对数组中的每个元素使用该函数。 function square(num) { …

.Net Micro Framework研究—中文显示

试验平台&#xff1a;.Net Micro Framework 模拟器微软示例程序中&#xff0c;仅支持两种字体&#xff08;small.tinyfnt和NinaB.tinyfnt&#xff09;&#xff0c;并不支持中文。翁祖泉老师在《如何在Microsoft .NET Micro Framework 的应用程序中添加中文字体&#xff1f;》的…

JavaScript --- 数组练习题

1. 创建一个记录学生成绩的对象&#xff0c; 提供一个添加成绩的方法&#xff0c; 以及一个显示学生平均成绩的方法。 function Warehouse() {this.formData []; // 学生成绩库this.add add; // 添加方法this.average average; // 计算平均值}function add(arr) {this…