作者:GAO-XIANG

转自:http://blog.csdn.net/xiang__jiangsu/article/details/8120414

首先我们在VS2010中添加AForge.Controls提供的控件:

        

Chart:这一控件提供了AddDataSeries,Dispose,RemoveAllDataSeries,RemoveDataSeries,UpdataDataSeries方法,通过下面的简单实例我们进行学习:

实例:// create data series array
               double[,] testValues = new double[10, 2];
               // fill data series
               for ( int i = 0; i < 10; i++ )
               {
                   testValues[i, 0] = i; // X values
                   testValues[i, 1] = Math.Sin( i *i ); // Y values
               }
              // add new data series to the chart
                 chart.AddDataSeries( "Test", Color.DarkGreen, Chart.SeriesType.ConnectedDots, 3 );

// set X range to display
                 chart.RangeX = new AForge.Range( 0, 9 );
             // update the chart
                 chart.UpdateDataSeries( "Test", testValues );

运行结果:

ColorSlider:这一控件包含有ColorSliderType枚举类型,类型有:Gradient,InnerGradient,OuterGradient,Threshold。使用见实例:

实例:colorSlider1.DoubleArrow = true;//使用双向箭头
                 colorSlider1.EndColor = Color.Red;//以红色结束
                 colorSlider1.FillColor = Color.Orange;//控件背景色
                 colorSlider1.Min = 10;//设定【0,255】区间最小值                
                 colorSlider1.Max = 200;//设定【0,255】区间最大值
                 colorSlider1.StartColor = Color.Blue;//起始颜色设置
                 colorSlider1.Type = ColorSlider.ColorSliderType.Gradient;//设定颜色渐变类型

Histogram:为Value赋整型值,即可获得直方图,示例如下:

实例://create array with histogram values
               int[] histogramValues = new int[500];
               Random rd = new Random();
               AForge.Parallel.For(0,500,delegate(int i)
               {
                   //为直方图赋值,值为随机数产生   
                   histogramValues[i]=rd.Next(100);
               });
               histogram.AllowSelection = true;//允许鼠标选择
               histogram.Color = Color.Blue;//直方图颜色
               histogram.IsLogarithmicView = true;//显示值以对数为底
               histogram.IsVertical = false;//直方图是否垂直显示
               // set values to histogram control
               histogram.Values = histogramValues;

运行结果:

HuePicker:该控件用于选择色彩,色彩值为整型,位于【0,359】,包括Value,Range两种类型,示例如下:

实例: huePicker1.Max = 350;//指定色彩最大值
                  huePicker1.Min = 10;//指定色彩最小值
                  huePicker1.Type = AForge.Controls.HuePicker.HuePickerType.Range;//指定色彩选择类型

//HuePicker的ValuesChanged事件
                  private void huePicker1_ValuesChanged(object sender, EventArgs e)
                  {
                       textBox1.Text = huePicker1.Value.ToString();
                   }

运行结果:

ManipulatorControl :这一控件是为了模拟控制器,通过改变中心点的相对位置,产生被控制体位置以及力度的变化。它有一个重要属性:ResetPositionOnMouseRelease,用以确定控制器行为,通常我们在PositionChanged事件中进行操纵器控制,示例如下:

实例://重置窗体大小
                 Size size = new System.Drawing.Size(2 * manipulatorControl1.Width,manipulatorControl1.Height);
                 this.Size = size;

//Manipulator色彩设置
                manipulatorControl1.BorderColor = Color.Blue;
                manipulatorControl1.BottomLeftBackgroundColor = Color.Brown;
                manipulatorControl1.BottomRightBackgroundColor = Color.CadetBlue;
                manipulatorControl1.DrawHorizontalAxis = true;
                manipulatorControl1.DrawVerticalAxis = true;
                manipulatorControl1.ManipulatorColor = Color.Coral;
                manipulatorControl1.TopLeftBackgroundColor = Color.DarkBlue;
                manipulatorControl1.TopRightBackgroundColor = Color.DarkGreen;
                //确定是否位置移动是否进行行为操作
                manipulatorControl1.ResetPositionOnMouseRelease = false;
                bt=new Bitmap(@"C:\Users\GAOXIANG\Desktop\dog.jpg");
                gp = this.CreateGraphics();//通过窗体创建GDI+
                //设置图片初始位置
                x = 3 * manipulatorControl1.Width / 2-bt.Width/2;
                y = manipulatorControl1.Height / 2-bt.Height/2;

//记录操控器当前位置
              private void manipulatorControl1_PositionChanged(object sender, ManipulatorControl.PositionEventArgs me)
              {
                  a = me.X;
                  b = me.Y;
              }

//操控器位置改变改变当前对象,实现操控
             private void manipulatorControl1_MouseUp(object sender, MouseEventArgs e)
             {
                 this.Refresh();
                 if (e.Button == MouseButtons.Left)
                 {
                     gp.DrawImage(bt, x + a * (manipulatorControl1.Width / 2), y - b * (manipulatorControl1.Height / 2));
                 }
             }

运行结果:

        

PictureBox:在AForge中该控件继承于Form中的PictureBox,但是该控件解决了Form中PictureBox不能显示16bpp,48bpp,64bpp彩色图像。

SliderControl:滑动条,与Manipulator控件使用方法类似,在次不再讨论。

VideoSourcePlayer:用以支持视频播放,这一控件的使用我们在AForge.Video中探讨。

AForge学习笔记(2):AForge.Controls相关推荐

  1. AForge学习笔记(3):AForge.Fuzzy

    AForge.Fuzzy 提供了大量的模糊集操作. FuzzySet:模糊集是模糊应用的基础,也是理解模糊应用的关键,我们通过一个例子理解模糊集的概念:在现实生活中我们以冷暖来直观的描述温度,例如我们 ...

  2. AForge学习笔记(5):AForge.Imaging(上)

    作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8131141 本次我们一起来学习AForge中影像处理算法以及 ...

  3. AForge学习笔记(1):AForge

    作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8119297 本次主要简单介绍AForge.NET中的  AF ...

  4. AForge学习笔记(4):AForge.Genetic

    遗传算法简介: 在学习AForge的遗传算法之前,我们首先简单介绍一下遗传算法的理念:遗传算法的提出是源于达尔文进化论思想的启发,优胜劣汰,适者生存,适应力强的生存下去的几率更大,那么在算法上我们用适 ...

  5. AForge学习笔记(5):AForge.Imaging(下)

    作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8138326 ImageStatistics:对图像的RGB进 ...

  6. AForge学习笔记(10):AForge.Imaging.Filters

    作者:GAO-XIANG 转自:http://blog.csdn.net/xiang__jiangsu/article/details/8144304 AdaptiveSmoothing:图像平滑处理 ...

  7. C#学习之 调用 AForge.NET Framework 启动摄像头

    今天开始捣鼓C#启动摄像头,之前做过用 C++调用OPENCV库启动摄像头,C#理论上也可以. 但是看了    这篇博文笔记, 顿时脑洞大开,原来可以和摄像头打交道的库有这么多啊.之前,我就直到OPE ...

  8. SilverLight学习笔记--Silverlight中WebRequest通讯

    本文我们学习如何使用WebRequest类实现客户端和服务器端的通讯.      本例处理过程:在客户端,我们在文本框中输入任意文本,然后用POST方法向服务器端传递信息,服务器端收到从客户端传来的信 ...

  9. WinSock学习笔记3:Select模型

    WinSock学习笔记3:Select模型 unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, G ...

最新文章

  1. [雪峰磁针石博客]2018最佳12个开源或免费web服务器和客户端性能测试工具
  2. Python- 反射 及部份内置属性方法
  3. 百度智能小程序开源联盟成立,首批12家成员签约
  4. Dubbo-Admin管理平台和Zookeeper注册中心的搭建(转)
  5. 细说C#多线程那些事 - 线程同步和多线程优先级
  6. qt高亮快捷键_QtCreator中常用快捷键总结
  7. 判断标签是否出界,重新设置样式
  8. IntelliJ IDEA for Mac 如何取消双击shift键打开全局搜索弹窗
  9. java移动端接口测试_走进Java接口测试之测试框架TestNG数据驱动(入门篇)
  10. docker-compose搭建kafka集群
  11. 仿XP系统的任务栏菜单
  12. 拒绝卡顿——在WPF中使用多线程更新UI
  13. 让你的软件支持繁体中文
  14. svn代码统计工具使用说明
  15. c语言scanf输入无理数,简单C语言scanf输入问题
  16. in not 效率太慢_[笔记] SQL性能优化 - 避免使用 IN 和 NOT IN
  17. 玩游戏机械键盘什么牌子好, 我们聊聊Hyperx游戏机械键盘
  18. mysql回表什么意思_什么是MYSQL回表查询
  19. 从零认识 无标度网络
  20. 中国软件10大最具影响力人物

热门文章

  1. 牛顿差商多项式的理解与C++实现
  2. Curl转python在线工具
  3. 35、jaeger链路追踪
  4. python skimage 填补图像孔洞
  5. ROS工业机器人和工业自动化竞赛ARIAC 2021即将启动
  6. 如何将pip更新到最新版本?
  7. 搜索引擎site关键字的站内搜索
  8. 利用Python将选择题、多选题导入Anki
  9. 【约束 约束 约束】
  10. 什么是impala,如何安装使用Impala