.Net Mirco Framework 2007技术大会
2006年在《程序员》杂志上通过看马宁的专栏文章,第一次知道了.Net MF。一年后的今天终于近距离地接触了.Net Mirco Frmaework,对MF有了一定的感性认识。
最近公司很多项目都有大量嵌入式设备使用,由于WinCE系统相对较大,对硬件平台要求过高,所以对.Net MF一直比较关注。今天总算大开眼界了。
微软公司的Colin Miller和Digi公司的John Leier在上午的演讲拉开了.Net MF序幕,针对嵌入式领域,一个从软件角度进行阐述,另一个从硬件平台角度进行呼应,一软一硬,二者强强联合,恐怕未来嵌入式智能设备一半以上的项目开发要被其收入囊中了。下午的中文演讲给人感觉有些干瘪,两三个演讲,平均短短十几分钟就草草收场。后来微软公司杜伟的演讲,从VS2005一行行难以看清的代码,到一个个令人惊艳的样例把MF开发技术推向最前台。
Digi公司很是有魄力,免费送出15套开发套件(5个作为回答问题的奖品,10个抽奖),自己即没有回答问题的勇气,也没有好的运气,只好剩下羡慕的份了。
最后为每个人送出的1G优盘(类似微软今年MVP大礼包中的优盘)很有分量,不仅是1G的容量,并且里面竟然把所有的幻灯片拷贝其中,更没有想到的是,MF 的SDK也在里面,真棒!
回到家迫不及待装了一份MF SDK(MicroFrameworkSDK.MSI 区区只有5998 kb,强!),有模拟器,也有示例。
其中几个示例不知道为什么编译成功,就是运行失败,对第二示例比较感兴趣,可以绘制图形,并且可以贴图。
相关代码如下:
.Net Mirco Framework 2007技术大会 // Copyright (C) Microsoft Corporation. All rights reserved.
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 using System;
.Net Mirco Framework 2007技术大会 using System.Collections;
.Net Mirco Framework 2007技术大会 using System.Threading;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT;
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT.Input;
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT.Hardware;
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT.Presentation;
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT.Presentation.Media;
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT.Presentation.Controls;
.Net Mirco Framework 2007技术大会 using Microsoft.SPOT.Presentation.Shapes;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 using PresentationDemo;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 /**///////////////////////////////////////////////////////////////////////////////
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public sealed class MyApp : Application ...{
.Net Mirco Framework 2007技术大会 // This static field prevents the object from being GC'd
.Net Mirco Framework 2007技术大会 private static GpioButtonInputProvider s_gpioInputProvider;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public Font NinaBFont;
.Net Mirco Framework 2007技术大会 public Font SmallFont;
.Net Mirco Framework 2007技术大会 public Bitmap Snowflake;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 private MyApp() ...{
.Net Mirco Framework 2007技术大会 // Initialize the Buttons/Pins dispatcher
.Net Mirco Framework 2007技术大会 s_gpioInputProvider = new GpioButtonInputProvider(this.Dispatcher, null);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Load some resources
.Net Mirco Framework 2007技术大会 NinaBFont = Resources.GetFont(Resources.FontResources.NinaBFont);
.Net Mirco Framework 2007技术大会 SmallFont = Resources.GetFont(Resources.FontResources.SmallFont);
.Net Mirco Framework 2007技术大会 Snowflake = Resources.GetBitmap(Resources.BitmapResources.Snowflake);
.Net Mirco Framework 2007技术大会 }
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 protected override void OnStartup(EventArgs e) ...{
.Net Mirco Framework 2007技术大会 // Create and set the application's main window
.Net Mirco Framework 2007技术大会 this.MainWindow = new MainMenuWindow(this);
.Net Mirco Framework 2007技术大会 base.OnStartup(e);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public void GoHome() ...{
.Net Mirco Framework 2007技术大会 Buttons.Focus(this.MainWindow); // Set focus back to the main window
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public static void Main() ...{
.Net Mirco Framework 2007技术大会 new MyApp().Run(); // Start the app's main window
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 }
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // This is the base class of all our windows; it makes every window visible,
.Net Mirco Framework 2007技术大会 // sets the window's size to the full size of the LCD, and give the window focus
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 internal class PresentationWindow : Window ...{
.Net Mirco Framework 2007技术大会 protected MyApp m_app;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 protected PresentationWindow(MyApp app) ...{
.Net Mirco Framework 2007技术大会 m_app = app;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Make the window visible and the size of the LCD
.Net Mirco Framework 2007技术大会 this.Visibility = Visibility.Visible;
.Net Mirco Framework 2007技术大会 this.Width = SystemMetrics.ScreenWidth;
.Net Mirco Framework 2007技术大会 this.Height = SystemMetrics.ScreenHeight;
.Net Mirco Framework 2007技术大会 Buttons.Focus(this); // Set focus to this window
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 protected override void OnButtonDown(ButtonEventArgs e) ...{
.Net Mirco Framework 2007技术大会 // Remove this window form the Window Manager
.Net Mirco Framework 2007技术大会 this.Close();
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // When any button is pressed, go back to the Home page
.Net Mirco Framework 2007技术大会 m_app.GoHome();
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 internal sealed class MainMenuWindow : PresentationWindow ...{
.Net Mirco Framework 2007技术大会 private ListBox m_listbox;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public ListBox MainListBox ...{ get ...{ return m_listbox; } }
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public MainMenuWindow(MyApp app)
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 : base(app) ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 Color instructionTextColor = ColorUtility.ColorFromRGB(192, 192, 192);
.Net Mirco Framework 2007技术大会 Color backgroundColor = ColorUtility.ColorFromRGB(26, 118, 183);
.Net Mirco Framework 2007技术大会 Color unselectedItemColor = ColorUtility.ColorFromRGB(192, 192, 255); // Unselected listbox item color
.Net Mirco Framework 2007技术大会 Color selectedItemColor = Colors.White; // Selected listbox item color
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // The Main window contains a veritcal StackPanel
.Net Mirco Framework 2007技术大会 StackPanel panel = new StackPanel(Orientation.Vertical);
.Net Mirco Framework 2007技术大会 this.Child = panel;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // The top child contains text with instructions
.Net Mirco Framework 2007技术大会 TextFlow textflow = new TextFlow();
.Net Mirco Framework 2007技术大会 textflow.TextAlignment = TextAlignment.Center;
.Net Mirco Framework 2007技术大会 textflow.Visibility = Visibility.Visible;
.Net Mirco Framework 2007技术大会 textflow.TextRuns.Add(
.Net Mirco Framework 2007技术大会 new TextRun(Resources.GetString(Resources.StringResources.SelectAnItemFromBelow),
.Net Mirco Framework 2007技术大会 app.NinaBFont, instructionTextColor));
.Net Mirco Framework 2007技术大会 panel.Children.Add(textflow);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Add a blank line to the stack
.Net Mirco Framework 2007技术大会 panel.Children.Add(textflow = new TextFlow());
.Net Mirco Framework 2007技术大会 textflow.TextRuns.Add(" ", app.NinaBFont, instructionTextColor);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // The next child contains a listbox with options
.Net Mirco Framework 2007技术大会 m_listbox = new ListBox();
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Prepare the listbox
.Net Mirco Framework 2007技术大会 Buttons.Focus(m_listbox);
.Net Mirco Framework 2007技术大会 panel.Children.Add(m_listbox);
.Net Mirco Framework 2007技术大会 this.Background = m_listbox.Background = new SolidColorBrush(backgroundColor);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 m_listbox.SelectionChanged += delegate(Object sender, SelectionChangedEventArgs e) ...{
.Net Mirco Framework 2007技术大会 Int32 previousSelectedIndex = e.PreviousSelectedIndex;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 if (previousSelectedIndex != -1) ...{ // If there was a previous index
.Net Mirco Framework 2007技术大会 // Change previously-selected listbox item color to unselected color
.Net Mirco Framework 2007技术大会 ((Text)m_listbox.Items[previousSelectedIndex].Child).ForeColor = unselectedItemColor;
.Net Mirco Framework 2007技术大会 }
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Change newly-selected listbox item color to selected color
.Net Mirco Framework 2007技术大会 ((Text)m_listbox.Items[e.SelectedIndex].Child).ForeColor = selectedItemColor;
.Net Mirco Framework 2007技术大会 };
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Add the items to the listbox
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 foreach (String s in new String[] ...{ "Vertical Stack", "Horizontal Stack", "Canvas", "Diagonal" }) ...{
.Net Mirco Framework 2007技术大会 Text text = new Text(m_app.NinaBFont, s + " Panel Demo");
.Net Mirco Framework 2007技术大会 text.ForeColor = unselectedItemColor;
.Net Mirco Framework 2007技术大会 text.TextAlignment = TextAlignment.Center;
.Net Mirco Framework 2007技术大会 text.Width = this.Width;
.Net Mirco Framework 2007技术大会 ListBoxItem lbi = new ListBoxItem();
.Net Mirco Framework 2007技术大会 lbi.Background = m_listbox.Background;
.Net Mirco Framework 2007技术大会 lbi.Child = text;
.Net Mirco Framework 2007技术大会 m_listbox.Items.Add(lbi);
.Net Mirco Framework 2007技术大会 }
.Net Mirco Framework 2007技术大会 m_listbox.SelectedIndex = 0;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Add a blank line in the stack
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // The bottom child contains text with return instructions
.Net Mirco Framework 2007技术大会 textflow = new TextFlow();
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 new TextRun("(After viewing a Panel Demo, hit Enter to return to this screen)",
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // If <Enter> button is pressed, go into the selected demo
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 if (e.Button == Button.Select) ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 switch (MainListBox.SelectedIndex) ...{
.Net Mirco Framework 2007技术大会 case 0: // Vertical Stack Panel Demo
.Net Mirco Framework 2007技术大会 new StackPanelDemo(m_app, Orientation.Vertical);
.Net Mirco Framework 2007技术大会 break;
.Net Mirco Framework 2007技术大会 case 1: // Horizontal Stack Panel Demo
.Net Mirco Framework 2007技术大会 new StackPanelDemo(m_app, Orientation.Horizontal);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 case 2: // Canvas Panel Demo
.Net Mirco Framework 2007技术大会 new CanvasPanelDemo(m_app);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 case 3: // Diagonal Panel Demo
.Net Mirco Framework 2007技术大会 new DiagonalPanelDemo(m_app);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Don't call base implementation (base.OnButtonDown) or we'll go back Home
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 protected override void OnGotFocus(FocusChangedEventArgs e) ...{
.Net Mirco Framework 2007技术大会 // Whenever this window gets focus, it gives it to its listbox
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 base.OnGotFocus(e);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 internal sealed class StackPanelDemo : PresentationWindow ...{
.Net Mirco Framework 2007技术大会 // This class shows how to build your own shape drawing in a DrawingContext
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 private sealed class Cross : Shape ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public Cross() ...{ }
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public override void OnRender(DrawingContext dc) ...{
.Net Mirco Framework 2007技术大会 // Draw a line from top, left to bottom, right
.Net Mirco Framework 2007技术大会 dc.DrawLine(base.Stroke, 0, 0, Width, Height);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // Draw a line from top, right to bottom, left
.Net Mirco Framework 2007技术大会 dc.DrawLine(base.Stroke, Width, 0, 0, Height);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public StackPanelDemo(MyApp app, Orientation orientation)
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 StackPanel panel = new StackPanel(orientation);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 panel.Visibility = Visibility.Visible;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 Shape[] shapes = new Shape[] ...{
.Net Mirco Framework 2007技术大会 new Ellipse(),
.Net Mirco Framework 2007技术大会 new Line(),
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 new Polygon(new Int32[] ...{ 0, 0, 50, 0, 50, 50, 0, 50 }), // A Square
.Net Mirco Framework 2007技术大会 new Rectangle(),
.Net Mirco Framework 2007技术大会 new Cross() // Our own custom shape
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 for (Int32 x = 0; x < shapes.Length; x++) ...{
.Net Mirco Framework 2007技术大会 Shape s = shapes[x];
.Net Mirco Framework 2007技术大会 s.Fill = new SolidColorBrush(ColorUtility.ColorFromRGB(0, 255, 0));
.Net Mirco Framework 2007技术大会 s.Stroke = new Pen(Color.Black, 2);
.Net Mirco Framework 2007技术大会 s.Visibility = Visibility.Visible;
.Net Mirco Framework 2007技术大会 s.HorizontalAlignment = HorizontalAlignment.Center;
.Net Mirco Framework 2007技术大会 s.VerticalAlignment = VerticalAlignment.Center;
.Net Mirco Framework 2007技术大会 s.Height = Height - 1;
.Net Mirco Framework 2007技术大会 s.Width = Width - 1;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 if (panel.Orientation == Orientation.Horizontal)
.Net Mirco Framework 2007技术大会 s.Width /= shapes.Length;
.Net Mirco Framework 2007技术大会 else
.Net Mirco Framework 2007技术大会 s.Height /= shapes.Length;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 panel.Children.Add(s);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 internal sealed class CanvasPanelDemo : PresentationWindow ...{
.Net Mirco Framework 2007技术大会 public CanvasPanelDemo(MyApp app)
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 Canvas canvas = new Canvas();
.Net Mirco Framework 2007技术大会 this.Child = canvas;
.Net Mirco Framework 2007技术大会 this.Background = new SolidColorBrush(ColorUtility.ColorFromRGB(0, 255, 255));
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 for (Int32 x = 0; x < Width; x += Width / 4) ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 for (Int32 y = 0; y < Height; y += Height / 4) ...{
.Net Mirco Framework 2007技术大会 Text text = new Text(m_app.SmallFont, " (" + x + "," + y + ")");
.Net Mirco Framework 2007技术大会 Canvas.SetLeft(text, x);
.Net Mirco Framework 2007技术大会 Canvas.SetTop(text, y);
.Net Mirco Framework 2007技术大会 canvas.Children.Add(text);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 internal sealed class DiagonalPanelDemo : PresentationWindow ...{
.Net Mirco Framework 2007技术大会 public DiagonalPanelDemo(MyApp app)
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 DiagonalPanel panel = new DiagonalPanel();
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 this.Background = new LinearGradientBrush(
.Net Mirco Framework 2007技术大会 ColorUtility.ColorFromRGB(192, 0, 0), ColorUtility.ColorFromRGB(32, 0, 0), 0, 0, Width, Height);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 for (Int32 x = 0; x < 4; x++) ...{
.Net Mirco Framework 2007技术大会 Bitmap b = new Bitmap(Width / 4, Height / 4);
.Net Mirco Framework 2007技术大会 b.StretchImage(0, 0, app.Snowflake, b.Width, b.Height, (UInt16)((x + 1) * 50));
.Net Mirco Framework 2007技术大会 Image image = new Image(b);
.Net Mirco Framework 2007技术大会 panel.Children.Add(image);
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 // This class shows how to build your own Panel
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 private sealed class DiagonalPanel : Panel ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 public DiagonalPanel() ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 protected override void MeasureOverride(int availableWidth, int availableHeight, out int desiredWidth, out int desiredHeight) ...{
.Net Mirco Framework 2007技术大会 // Called to calculate the width/height desired
.Net Mirco Framework 2007技术大会 desiredWidth = 0;
.Net Mirco Framework 2007技术大会 desiredHeight = 0;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 foreach (UIElement child in Children) ...{
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 if (child.Visibility != Visibility.Collapsed) ...{
.Net Mirco Framework 2007技术大会 child.Measure(Int32.MaxValue, Int32.MaxValue);
.Net Mirco Framework 2007技术大会 Int32 childWidth, childHeight;
.Net Mirco Framework 2007技术大会 child.GetDesiredSize(out childWidth, out childHeight);
.Net Mirco Framework 2007技术大会 desiredWidth += childWidth;
.Net Mirco Framework 2007技术大会 desiredHeight += childHeight;
.Net Mirco Framework 2007技术大会 }
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 protected override void ArrangeOverride(int arrangeWidth, int arrangeHeight) ...{
.Net Mirco Framework 2007技术大会 Int32 x = 0, y = 0;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 child.Arrange(x, y, childWidth, childHeight);
.Net Mirco Framework 2007技术大会 x += childWidth;
.Net Mirco Framework 2007技术大会 y += childHeight;
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会
.Net Mirco Framework 2007技术大会 后记:此外在会上还遇到了我的偶像马宁、马琪、张欣(还是张欣强,通过回答问题获得一个MF开放套件),如果他们不介意附上照片作个留念:-)