Mirroring And Painting
You know, just when I think I've solved a mirroring issue (like this one, which was fixed, or this one, which was also fixed), I run into another one. This problem seems very insidious and tempermental...it's feels like a real PITA. So here we go!
It all starts with a simple WinForms application (you can get the code here):
Now I resize the form by grabbing the bottom portion of the window:
Everything still looks normal. The problem is when I shrink the window such that its
Height value to 69:
It's hard to see, but the left-side of the label now has a black line. In fact, all of the labels have this:
The problem is that this doesn't happen when the application is not mirrored. In other words, if I set the
IsMirrored configuration setting to
Off, the application looks fine no matter how I resize the window.
Also, the initial size of the window seems to have some relation to when the black line manifests itself. Here's a table of some initial window size values along with the
Height value when line problem occurs:
||Height Value That Causes Label Line
See the trend? There seems to be a correlation between the initial width and the height at which the problem occurs. Why this is...I have no idea. And it gets worse when you start to add images on to a form (via a
PictureBox or a background image on a
Panel). You start to see lines show up on the left-hand sides of the containers like you do with the labels. Also, I've noticed that the text painting in the label can get messed up with the problem occurs:
If you look closely, you'll see that the text in
Label2 is getting painted improperly.
This is starting to become a big issue with the client. I'm going to keep digging, but I'm starting to quickly reach the edge of my knowledge with GDI and window drawing. Again, the code is available here if you want to take a look at it. Any help/ideas are appreciated - thanks in advance.
* Posted at 01.25.2005 10:55:26 AM CST | Link *