11第7章C#Windows应用程序基础22图形用户界面33图形用户界面界面一致性协调一致、尽量使用标准控件布局合理化自上而下、从左到右操作简便性避免重复操作、尽可能提供缺省值、候选项操作容错性恢复功能、确认响应时间图标提示帮助和提示44图形用户界面Size/SizeFSizes1=newSize(3,2);Sizes2=newSize(2,2);55图形用户界面Size/SizeFSizes1=newSize(3,2);Sizes2=newSize(2,2);Sizes3=s1+s2;66图形用户界面Point/PointFPointp1=newPoint(2,3);p1+=newSize(3,2);77图形用户界面ColorColor.Black;Color.FromArgb(0,0,0);Color.Red;Color.FromArgb(255,0,0);Color.Green;Color.FromArgb(0,176,80);88图形用户界面Font/FontFamilyFontf1=newFont(“TimesNewRoman”,15);Fontf2=newFont(“宋体”,16);Fontf3=newFont(“隶书”,18,FontStyle.UnderLine);Fontf4=newFont(“Arial”,18,FontStyle.Bold|FontStyle.Italic);foreach(FontFamilyfinFontFamily.Families){this.listBox1.Items.Add(f.Name);}99Windows窗体、消息框和对话框FormTextControlBoxMinimizeBoxMaximizeBoxSizeLocation1010Windows窗体、消息框和对话框FormBackColorForeColorFontFormBorderStyle1111Windows窗体、消息框和对话框MessageBoxMessageBox.Show(A);1212Windows窗体、消息框和对话框MessageBoxMessageBox.Show(A,B);1313Windows窗体、消息框和对话框MessageBoxMessageBox.Show(A,B,MessageBoxButtons.YesNoCancel);1414Windows窗体、消息框和对话框MessageBoxMessageBox.Show(A,B,MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);1515Windows窗体、消息框和对话框ColorDialogColorDialogdlg1=newColorDialog();if(dlg1.ShowDialog()==DialogResult.OK)this.ForeColor=dlg1.Color;1616Windows窗体、消息框和对话框FontDialogFontDialogdlg1=newFontDialog();if(dlg1.ShowDialog()==DialogResult.OK)this.Font=dlg1.Font;1717常用Windows控件ControlLabelTextBoxBaseTextBoxRichTextBoxButtonBaseButtonCheckBoxRadioButtonListControlListBoxComboBox1818常用Windows控件LabelTextBoxRichTextBoxNumericUpDown1919Demo2020常用Windows控件ButtonCheckBoxRadioButton2121Demo2222常用Windows控件ComboBoxListBox2323Demo2424菜单、工具栏和状态栏MenuStripToolStripStatusStrip2525菜单、工具栏和状态栏MenuStripToolStripStatusStripMenuStripItemToolStripItemToolStripStatusLabel2626Demo27GDI+绘图GDI(GraphicDeviceInterface,图形设备接口)是用于绘图的一系列系统功能函数的总称,由Windows操作系统提供。GDI+是下一代Windows的绘图程序,将各种绘图功能井井有条地封装在一个个的类中,以面向对象向应用程序提供绘图支持。目前,可以把GDI+看成是对原有GDI技术的一个面向对象的封装,以后,将不再依赖于GDI,因为WindowsVista不再使用NT内核,而是使用.NETFramework。28GDI+绘图基础知识所有GDI+对象都位于特定的命名空间中:System.Drawing:提供了对GDI+基本图形功能的访问。System.Drawing.Design:包含扩展设计时用户界面(UI)逻辑和绘制的类。System.Drawing.Drawing2D:提供高级的二维和矢量图形功能。System.Drawing.Imaging:提供高级GDI+图像处理功能。System.Drawing.Printing:提供与打印相关的服务。System.Drawing.Text命名空间提供高级GDI+排版功能。具体请参阅MSDN。29屏幕坐标xy(0,0)30Graphics对象Graphics对象是GDI+绘图中的核心对象。要使用计算机绘图,必须首先创建Graphics对象。有两种方法可以创建Graphics对象:从Paint事件中e参数中获取Paint事件在窗体或控件需要重绘时发生。用CreateGraphics方法创建下面来看两个示例:31示例:在窗体上画矩形privatevoidForm1_Paint(objectsender,System.Windows.Forms.PaintEventArgse){//获取Graphics对象Graphicsg=e.Graphics;//书写绘图代码g.DrawRectangle(Pens.Blue,10,10,200,150);//释放Graphics对象所占用的资源g.Dispose();}32示例:在按钮上画椭圆privatevoidbutton1_Click(objectsender,System.EventArgse){Graphicsg=button1.CreateGraphics();//画一个椭圆g.DrawEllipse(Pens.Red,5,5,button1.Width-10,button1.Height-10);g.Dispose();}33画笔(Pen)Pen用于指定绘制图形的线条。Penpen1=newPen(Color.Red);Penpen2=newPen(Color.Blue,5);第1个画笔是红色的,1个像素宽度第2个画笔是蓝色的,5个像素宽度34画笔(Pen)Pen对象创建后,还可以指定不同的属性,绘制不同类型的线条。//创建一支宽10像素的笔Penpen3=newPen(Color.Brown,10);//笔的起点为三角形pen3.StartCap=LineCap.Triangle;35画刷(Brush)画刷(Brush)用于填充图形。.NET支持以下几种画刷:纯色画刷(SolidBrush):用RGB颜色填充图形图案画刷(HatchBrush):用Windows提供的几个典型填充图案填充颜色,如斜线、网格等。纹理画刷(TextureBrush):使用纹理(小图片)填充图形。渐变画刷(LinerGradientBrush):使用平滑过渡颜色填充图形路径渐变画刷(PathGradientBrush):基于某一路径,使用复杂的混合色渐变填充图形Example:SolidBrushmyBrush=newSolidBrush(Color.Red);g.FillRectangle(myBrush,newRectangle(100,100,50,50));