How to make the vision project dynamic to different screen setting

I have design my project for my factory , all of my ender user run the vision is based on PC, the screen is 1080P
image,
but some people use the desktop some use laptop, when they use desktop they have a big screen, so their scale is 100
image
they can see all the word clearly


but when some people they use laptop their screen is small , their screen setting is 150


many words can't see clearly, if their any solution I can design the project that can make both end user can see the vision windows fonts clearly?

You should design your screen for the smallest resolution. At 150%, that's 1280x720

When I set the screen 1280*720


the screen looks like this, a lot of space is not use when the scale is both in 100% and 150%

So I set the screen
image
in scale 100%


when in scale 150%, there are still

space is both side.
is that possible the ignition can read the client screen scale setting then decide which font's size should be?

Have you set the layout settings for the components?
Design at the lowest common resolution like @nminchin says and then
Select all of the components on the page then select the layout button
Select RELATIVE, and Maintain Aspect Ratio.

This is covered in the user manual
https://docs.inductiveautomation.com/display/DOC81/Working+with+Vision+Components#WorkingwithVisionComponents-ComponentLayout

1 Like

When you maintain aspect ratio, and the larger screen isn't a perfect scale-up for both width and height, Ignition maximizes as best it can, leaving space either left/right or top/bottom.

If you don't maintain aspect ratio, stretching/skewing may happen, but no blank areas.

There is no "perfect" answer.

3 Likes

Window's custom scaling function is a big problem for everybody, and I can't tell you how much seemingly unnecessary convolution has bloated my apps because of it. I've seen users set their scaling to 300% on a tablet before, so I'm not sure if there is an "easy" answer to this. If there is, I certainly haven't found it yet.

2 Likes

If you want to get the scale setting, and go down the road of trying to dynamically change your rendering based upon that parameter, this script will return it:

from java.awt import GraphicsEnvironment
customScaleSetting =  int(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration().getDefaultTransform().getScaleX()/.01) 
print str(customScaleSetting)+"%"