AutoScale Doesn't Behave How I Expect/Hope

C

Charles Law

I have just been playing with AutoScale and I am unhappy with the way it
appears to work.

I have a form created on a desktop m/c where the screen font is Normal (96
dpi). The form looks fine at design time and runtime. I run the application
on my laptop, where the screen font is set to 120 dpi (125%), and the form
does not look fine. The line height of a listbox on the form is too small,
labels are truncated, and things generally look cramped. AutoScale is set to
True.

I notice that when I open the designer on the desktop, the AutoScaleBaseSize
is (5, 13). When I open the designer on the laptop it is also (5,13). If I
then change the AutoScale property in the properties window and look again
at AutoScaleBaseSize, it has changed to (6,15). Now when I run the
application on the laptop all is well. Well, almost. I should point out that
user controls on the form still do not scale correctly, and since they do
not have an AutoScale property, all I can think of doing is calling the
Scale() method with a parameter of 1.25. The problem with this approach is
that I would have to do this for every user control, and there are a lot of
them. It doesn't seem right that I have to add special code to all my user
controls to get them to scale properly. Furthermore, I haven't discovered
(yet) how to determine the correct scale factor at runtime.

I thought that the point of the AutoScale property was that a form would
display correctly on m/cs with different display settings, without having to
rebuild on that m/c. It doesn't look like that is what really happens.

Have I missed out a step here? Does anyone know the correct procedure for
making this work?

TIA

Charles
 
P

Phil Wright

I have never been able to get the AutoScale to work correctly. Another issue
is if you have a control is has a docking value of Fill then you would
expect its size to ignore any scaling because it needs to fill the spare
area in the parent container. But no, when the control is first created it
makes itself bigger! than the fill area until it is resized. In short I
would avoid its use. I notice that VS.NET 2005 Beta 2 does away with using
AutoScale.

Phil Wright
Follow the microISV story at...
http://componentfactory.blogspot.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top