[Mono-dev] mono X11 rendering

Robert Jordan robertj at gmx.net
Fri Oct 14 11:50:32 EDT 2005


Hi,

> I am developing a simple applications using Thread
> class to change the color of the square (Lab
> assignment). Everything is working properly, except I
> have to drag or cls /opn the windows in linux to fix
> theThread and the only solutions to produce the color
> change.  

Well, OnPaint is only called on demand, and not when
a field like "c" suddenly changed ;-)

If you want to cycle the colors, then you have
to force a redraw using form's Refresh () method.

To perform the refresh from another thread, you
probably need to use form's Invoke method, because
UI components usually have a thread affinity.

Rob



> I think it has something todo with the X11 rendering
> in Linux. Are there any solutions to this problems? 


> 
> here is my code: (This code should be working in MS
> Windows) 
> 
> [code]
> using System;
> using System.Windows.Forms;
> using System.Threading;
> using System.Drawing;
> 
> public class ColoredBoxes : Form
> {
> 	private Color c;
> 	public ColoredBoxes()
> 	{
> 		Thread t = new Thread(new ThreadStart(Run));
> 		t.Start();
> 	}
> 	
> 	protected override void OnPaint(PaintEventArgs e)
> 	{
> 		Graphics g = e.Graphics;
> 		Pen blue = new Pen(c, 3);				
> 		g.DrawRectangle(blue, 100,100,30,30);
> 		base.OnPaint(e);
> 	}
> 
> 	public void Run()
> 	{
> 		Random r = new Random();
> 		while(true)
> 		{
> 			c = Color.FromArgb(r.Next(256), r.Next(256),
> r.Next(256));
> 			Thread.Sleep(200);
> 		}
> 	}
> 
> }
> 
> public class Test{
> 	public static void Main()
> 	{
> 		Application.Run(new ColoredBoxes());
> 	}
> }
> [/code]
> 
> 
> Thank you for all your help guys
> 
> 
> 
> --
> 
> Harry Tanama
> Programmer/Developer
> .NET / JAVA
> Powerd by GNU/LiNUX  
> 
> 
> "Let Christ be glorify in our words and actions."
> 
> "Jesus Christ save the entire human race from sins & GNU/Linux save human from high cost software applications."
> 
> 
> 		
> __________________________________ 
> Yahoo! Music Unlimited 
> Access over 1 million songs. Try it free.
> http://music.yahoo.com/unlimited/




More information about the Mono-devel-list mailing list