日期:2014-05-20  浏览次数:20799 次

移植.net程序到Linux下遇到的Mono LinearGradientBrush问题
移植.net程序到Linux平台下遇到的问题,系统为Ubuntu12.04,系统中安装的mono版本为2.10.8,在Linux下有几个填充的矩形消失了,这是我的代码
 private void button2_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();
            DrawGradient(g);
        }

        private void DrawGradient(Graphics g)
        {
            RectangleF rect = new RectangleF(0,0,1000,10);
            LinearGradientBrush b = new LinearGradientBrush(rect,Color.Red,Color.Blue,LinearGradientMode.Vertical);
            for (int i = 0; i < 6; i++)
            {
                g.FillRectangle(b, new RectangleF(0, i * 100, 1000, 10));
            }
            
        }

程序在windows下与Linux下显示情况如下图:


进过测试如果不适用渐变画刷的话则不会出现该情况,请问有谁知道是什么原因吗?怎么解决呢?
------解决方案--------------------
引用:
Quote: 引用:

貌似是你for循环后几个没有执行填充矩形的函数啊,最好调试下看看

你好,你的意思是消失的几个填充矩形是由于没有正确执行g.FillRectangle()方法吗?
是的,或者就是没有执行