刚到公司 我们头让我用C#  以前没有学过  现在让实现一个 用一个trackBar控制一个颜色从白到黑的过程  图形也得自己画   我现在就能显示一个静态的
代码:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
   Rectangle ClientRectangle=new Rectangle(15,15,200,100);
LinearGradientBrush gradient=new LinearGradientBrush(ClientRectangle,Color.White,Color.Black,0.0f);
e.Graphics.FillRectangle(gradient,ClientRectangle);
}
不知道怎么写用滑块怎么实现了  还请哥哥姐姐 帮帮忙 给写两句参考一下 谢谢!!!

解决方案 »

  1.   

    是从白均匀过渡到黑 中间的值怎么设啊  怎么对应  以前用的是RGB值 现在怎么把好比 0和白色对应起来 白色用什么表示啊
      

  2.   

    GDI,难,太难了!要我的话我也死定
      

  3.   

    就是在Form里面画一个图形 当滑块在最左端时 图形是白色 滑块移动到右边 图形变成黑色 中间的时候均匀过渡
      

  4.   

    我知道是渐变啊......有两种办法:
    <1> 手动指定每个点的RGB值. 示例代码:
    if(glider.value==1)
     color=#000000
    else if(glider.value==2)
     color=#.....
    else if(..==10)
     color=#FFFFFF这样你只要用选颜色的工具枚举出八个中间值就可以了. <2>用代码计算
    比较简单的想法是让它的RGB值按比例递增, 但是中间可能出现彩色, 不知道你能不能接受. 
    如果不行, 就要研究只有黑白两色在变化时RGB 值变化的规律, 然后计算. 用第一种比较简单.嗯.
      

  5.   

    那画的时候怎么调用 我上面是用的起始颜色和终止颜色  要是用RGB的话 用哪个函数啊
      

  6.   

    Color可以拿到R、G、B三个参数的,R、G、B都是整型,其它的你自己慢慢加减就是了
      

  7.   

    0,0,0是黑色,255,255,255是白色,然后你移动一次R、G、B都+1就OK了
      

  8.   

    private void trackBar1_Scroll(object sender, System.EventArgs e)
    {
    iPos=trackBar1.Value;


                
    }private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    Graphics g = e.Graphics;

       Rectangle ClientRectangle=new Rectangle(15,15,200,100);
               

    }
    就是这两个函数里面写什么
      

  9.   

    汗, 你也太懒了吧, 有颜色了还不会画?
    你的主贴里不是已经有创建刷子的代码了么? 
    再往下问, 不如打开MSDN 看示例.
      

  10.   

    Rectangle loRectangle = new Rectangle(15, 15, 200, 100);
            private void trackBar1_Scroll(object sender, EventArgs e)
            {
                this.Invalidate(loRectangle);
            }        protected override void OnPaint(PaintEventArgs e)
            {
                Color begin = Color.FromArgb(this.trackBar1.Value ,this.trackBar1.Value,this.trackBar1.Value);
                Color end = Color.FromArgb(255 - this.trackBar1.Value, 255 - this.trackBar1.Value, 255 - this.trackBar1.Value);
                LinearGradientBrush gradient = new LinearGradientBrush(loRectangle, begin, end, 0.0f);
                e.Graphics.FillRectangle(gradient, loRectangle);            base.OnPaint(e);
            }滑块的最大值设置成 255