Resolving Ignition Vision Labels Shrinking in the Client

Karen Mitchell7 min read
HMI / SCADAOther ManufacturerTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

What is the screen telling you?

Designer shows the label at a comfortable size. The Vision client shows the same window with every label smaller. The tag is right, and the text property is right. What differs is the space the client gives the window, and the component layout decides what happens to text when that space changes.

In Relative layout, each component stores its position and size as a proportion of its parent container's design size. At runtime the client compares the container's actual size with its design size and scales every child by that ratio. With Scale Font enabled, the font size is multiplied by the same factor. The Designer always renders the window at its design size, so the scale factor there is 1.0 and the text looks correct. The client rarely gets exactly that size.

Here is an illustrative calculation. A label configured at 20 pt, inside a container that renders at 80% of its design size, displays at 16 pt when Scale Font is on. When Maintain Aspect Ratio is also on, the client applies the smaller of the horizontal and vertical ratios to both axes. A viewport that loses height to a docked header therefore shrinks text even when the width matches.

Check 1: Is the client viewport smaller than the window's design size?

Read the window's design size in the Designer from the window properties. Then read the root container's actual size in the running client. Use a temporary button:

win = system.gui.getParentWindow(event)
rc = win.getRootContainer()
print rc.getWidth(), rc.getHeight()

Open the client's diagnostics console to read the output.

Reading Meaning Next check
Client size smaller than design size in either axis Relative scaling is active and shrinking content Check 2
Client size equal to design size Scaling is not the cause. Look at the font set in the label's appearance properties and at bindings that drive font or size Stop this tree and inspect bindings
Client size larger, text still small A parent container is scaling differently from the root, or Windows display scaling differs on the client PC Check 2, then compare OS display scaling between the design PC and the client PC

Several things commonly eat viewport space that the Designer does not show:

  • Docked header and navigation windows.
  • Client window borders and the taskbar.
  • A lower monitor resolution on the client PC.
  • A different OS display scaling percentage on the client PC.

A fleet that runs one resolution and one system scaling setting eliminates most of this. That is an operational fix, not a project fix.

Check 2: What layout mode does the component and every parent container use?

Right-click the label in the Designer and select Layout. The dialog shows the layout mode (Relative or Anchored) and, for Relative, the Maintain Aspect Ratio and Scale Font options.

Layout is an independent attribute of every component and every nested container. It is not inherited. Walk up the hierarchy and open the Layout dialog on each container that encloses the label.

Label layout Parent container layout Result at smaller viewport
Relative, Scale Font on Relative Label box and font both shrink. This is the reported symptom
Relative, Scale Font off Relative Label box shrinks, font stays at the configured size. Text may clip
Anchored Relative Container shrinks. Label holds its anchors to the container edges, so its position shifts with the container
Anchored Anchored Label keeps its size and anchored offsets. Nothing scales

If the label is Anchored and still looks smaller, a parent container is the scaling element. Go to Check 3 on that container's children.

Check 3: Should Scale Font be on for this screen?

Base the decision on the screen type, not the label.

Setting Where Effect Use when
Relative, Scale Font on Right-click > Layout Geometry and text scale together P&ID or overview graphics where labels sit on scaled equipment symbols and must stay aligned with them
Relative, Scale Font off Right-click > Layout Geometry scales, text stays at the size configured in appearance properties Screens that must fill mixed resolutions and still keep text readable
Anchored Right-click > Layout Fixed size, edges pinned. You choose which components stretch Forms, tables, and navigation on a fixed-resolution fleet
Default Component Layout Project Properties, Vision design settings Sets the layout that newly dropped components receive Establishing one convention across a project

Both Anchored layout and Relative-without-font-scaling solve the tiny-text complaint. Choose Anchored when you control the display hardware and want predictable behavior: you decide exactly which components expand, and nothing resizes unexpectedly. Relative layout is harder to manage and less predictable on non-graphic screens.

Anchored layout does not scale geometry, so it is a poor fit for P&ID pages that must fill different monitors. On those pages, keep the graphics Relative. Turn Scale Font off only where the text boxes have enough slack to hold full-size text.

What goes wrong after the change?

  • Text clipping. With Scale Font off, the label box still shrinks in Relative layout. Size label boxes for the smallest target viewport, not the Designer size.
  • Project default is not retroactive. Changing the default component layout in Project Properties affects newly placed components only. Existing labels keep their own layout until you change them.
  • Nested containers override your intent. A Relative container scales its contents regardless of how carefully you set the children. Audit containers, not just leaf components.
  • No global flag in the export. Exported window XML has no named Scale Font boolean. The setting is encoded inside each component's layout constraints property. Bulk-editing the XML is fragile.
  • Scripted modification is possible but unforgiving. The FPMILayout and FPMI_LC classes expose layout constraints to scripting. Test any bulk script on a copy of the project first.
  • No behavior change in 8.3. Do not wait for an 8.3 upgrade to change this; fix the layouts in the project.

How do I fix it and prove it on the client?

  1. In Project Properties, set the Vision default component layout to the convention you chose in Check 3. For example, use Anchored for forms, or Relative with Scale Font off for mixed-resolution screens.
  2. Open each affected window. Select the labels, right-click, choose Layout, and apply the same mode and options.
  3. Repeat step 2 on every enclosing container found in Check 2 so the hierarchy follows one convention.
  4. For P&ID windows, leave the graphics Relative with Maintain Aspect Ratio. Decide per label whether text must track the symbols (Scale Font on) or stay readable (Scale Font off, with a wider text box).
  5. Save and publish the project.
  6. Launch a client on the smallest-resolution target PC, with the docked windows it uses in production.
  7. Rerun the root-container size script from Check 1 and record the width and height.
  8. Compare label text size against the Designer. With Scale Font off or Anchored layout, the rendered text must match the point size set in the label's appearance properties.
  9. Resize the client window smaller and larger. Confirm that fonts hold their size, no label text is clipped, and Relative graphics stay aligned with their labels.

FAQ

How do I stop Ignition Vision from shrinking label fonts in the client?

Right-click the label in the Designer, select Layout, and turn off Scale Font. You can also switch the label to Anchored layout. Either way, the label renders at the font size set in its appearance properties regardless of client resolution.

How do I set a default layout for every new Vision component?

Set the default component layout in Project Properties under the Vision design settings. Layout is not inherited, so the default applies only to newly placed components. Existing components must be changed individually or in multi-selection.

How do I tell whether a parent container is causing the scaling?

Open the Layout dialog on each container that encloses the label. Any Relative container rescales its contents when the client viewport differs from its design size. An Anchored label inside a Relative container still moves with that container.

Should I use Anchored or Relative layout for Vision P&ID screens?

Use Relative for P&ID graphics that must fill different monitor sizes, because Anchored layout does not scale geometry. Use Anchored for forms and navigation, especially when every client runs the same resolution and display scaling.

How do I change the Scale Font setting with a script or in the exported XML?

No named Scale Font field exists in the export. The setting is encoded in each component's layout constraints property. For scripted changes, use the FPMILayout and FPMI_LC classes, and test on a copy of the project before running any bulk edit.

Back to blog