如何解析.Net Micro Framework中的Shapes命名空間,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
郯城ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
在Microsoft.SPOT.Presentation.Shapes命名空間下,包含幾個(gè)形狀對(duì)象,主要有Ellipse、Line、Polygon、Rectangle,同樣也只有Rectangle實(shí)現(xiàn)的***,其他形狀都不支持填充色,雖然每個(gè)對(duì)象都有Fill屬性。
讓人奇怪的是,每個(gè)形狀對(duì)象都不能設(shè)置left和top坐標(biāo),僅能設(shè)置寬度和高度,用起來(lái)很不習(xí)慣。
StackPanel類是Panel的派生類,從字面意思上看,就是可以堆疊的面板。意如其名,它可以包含多個(gè)子對(duì)象,不過(guò)每一對(duì)象都不能重疊,以特有的方式堆疊在一起。
有如下幾個(gè)屬性方法控制堆疊方式:
1、Orientation屬性,有兩種方式:Orientation.Horizontal,Orientation.Vertical。設(shè)置該屬性后,StackPanel的子對(duì)象的坐標(biāo)系就會(huì)發(fā)生變化(很可惜字體的方向并沒(méi)有從根本上改變)。
2、HorizontalAlignment、VerticalAlignment屬性,設(shè)置子對(duì)象的堆疊方式。枚舉定義如下。
public enum HorizontalAlignment { Left = 0, Center = 1, Right = 2, Stretch = 3, } public enum VerticalAlignment { Top = 0, Center = 1, Bottom = 2, Stretch = 3, }
3、SetMargin方法,設(shè)置邊界空白大小。
完整的代碼如下,
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() { //創(chuàng)建窗體 WindowsDrawing win = new WindowsDrawing(); //程序運(yùn)行 new Program().Run(win); } internal sealed class WindowsDrawing : Window { public WindowsDrawing() { this.Width = SystemMetrics.ScreenWidth; this.Height = SystemMetrics.ScreenHeight; //可設(shè)置顯示方向(水平,垂直) //StackPanel panel = new StackPanel(Orientation.Vertical); StackPanel panel = new StackPanel(Orientation.Horizontal); //設(shè)置邊界空白 panel.SetMargin(10); //設(shè)置對(duì)象堆疊的方式 panel.HorizontalAlignment = HorizontalAlignment.Center; panel.VerticalAlignment = VerticalAlignment.Center; this.Child = panel; //添加文本 Text txt = new Text(Resources.GetFont(Resources.FontResources.small), "yefan"); //不能設(shè)置left,top坐標(biāo) txt.Width = 100; txt.Height = 30; panel.Children.Add(txt); //添加不同的形狀對(duì)象 Shape[] shapes = new Shape[] { new Ellipse(), new Line(), new Polygon(new Int32[] { 0, 0, 10, 0, 10, 10, 0, 10 }), new Rectangle() }; //設(shè)置形狀對(duì)象必要的參數(shù)(各對(duì)象不能重疊,只能堆疊在一起) foreach (Shape s in shapes) { s.Fill = new SolidColorBrush(ColorUtility.ColorFromRGB(0, 255, 0)); s.Stroke = new Pen(Color.Black, 2); //不能設(shè)置left,top坐標(biāo) s.Height = 40; s.Width = 40; panel.Children.Add(s); } } } } }
僅修改這句代碼 StackPanel panel = new StackPanel(Orientation.Horizontal);中的參數(shù)就可以實(shí)現(xiàn)兩種不同的效果,如下面兩圖所示:
總的來(lái)說(shuō),我覺(jué)得MF提供的圖像對(duì)象還很不完善,不僅一些基本功能沒(méi)有完成(如填充、線寬),并且無(wú)法設(shè)置形狀對(duì)象的絕對(duì)坐標(biāo)(left,top),同時(shí)總類也特別少,希望以后的版本中能有很大的提升。
看完上述內(nèi)容,你們掌握如何解析.Net Micro Framework中的Shapes命名空間的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!