“在圆形或椭圆区域内使填充颜色渐变”?
我已经做过一个,是将Brush.Bitmap设置成我用程序实现的颜色渐变,然后用strechdraw();可以画出一个正方形或长方形的来。但是对于圆形或椭圆就不能实现。
用以下方法:
canvas.Brush.Bitmap:=图形文件;
canvas.ellipse();
以上实现的效果有这样情况,如果ellipse的初始点坐标是图形文件宽度和高度整数倍时则在椭圆或圆区域内显示完全图象,如果不是初始坐标,而且ellipse使用的宽度和高度跟图形相同的时候,则在椭圆或圆区域内显示多个半图(图形文件左一半,有一半).请大家帮我解决在椭圆或圆区域内显示出渐变色,不一定是用canvas.Brush.Bitmap:=图形文件.

解决方案 »

  1.   

    为什么一定要这样的要求呢?
    如果是按钮可以用圆形按钮,使用Imagebtn之类的控件,装载渐变的圆形按钮图片,如果是你用1stClass控件试试,可能对你有用!
      

  2.   

    1stClass控件我知道,也正在用,这个要求我是想做一个颜色渐变的控件,可以是圆可以是方,可以单色填充,可以是渐变。仅此而已。方的好做。很多方法都已经完成。现在就是要求在圆里实现。还是没有人能回答吗??难道这里真没有高手,还是高手不屑于回答?
      

  3.   

    首先创建一个矩形的渐变色填充,然后创建一个你需要的形状的区域(region)或者通道(path)。然后用这个通道做一个Mask一样的将矩形中不需要的部分屏蔽掉。
      

  4.   

    同意TechnoFantasy两个区域取或,将椭圆以外的剪裁掉就行了
      

  5.   

    TechnoFantasy已经说得很清楚了,难道还要人家帮你把代码都写出来吗?那你是不是会把工资给人家呢?
      

  6.   

    上面的方法我试过了,在FORM里的结果是可以的,但是我做的是一个控件,控件实现的结果却是还是上面的样子(我的主题上提到的)
      

  7.   

    FORM和控件有什么不同吗?最多就是先在一个内存BITMAP对象里画好再贴到控件上就是了
      

  8.   

    这个方法(内存BITMAP)正在调试中。