While the Per-Monitor (V2) DPI Awareness mode can ensure the clarity of text and controls, there are still areas that are not fully supported or optimized:
-
Multi-monitor
The application will NOT scale properly when running in a multi-monitor environment if the screens have different DPI settings.
When the screens have different DPI settings, you can only run the application in the main screen. If you run or move the application to the extended screen, the application UI will not scale properly.
-
Dynamically changing the DPI scaling is NOT supported.
If the DPI scaling is dynamically changed while the application is running, you will have to restart the application otherwise the UI will not scale properly (the window size may change unexpectedly, and the size of UI elements such as buttons, DataWindows, fonts etc. may increase or decrease incorrectly).
-
Images
The application bitmap image is stretched to the expected physical size. High-definition system images are not yet provided, making original images blurry after increasing the scaling ratio. For example, the arrows in some controls, check marks in the checkboxes, RibbonBar, etc., will appear blurry after increasing the scaling ratio.
Vector images (e.g. SVG) are not yet supported (they are planned for future versions).
-
Some controls are rendered partially by PowerBuilder and partially by Windows.
For example, toolbar text in non-client areas may appear unclear. In some virtual machine environments, Windows OS may occasionally have issues rendering images in CheckBox\RadioButton.
Solution: Applying a theme can often work around these issues, as PowerBuilder will handle the rendering. If the customer applies a "theme" or uses a contemporary style toolbar, PowerBuilder will render the toolbar.
Tip: If using PerMonitorV2 on Windows 10, ensure the "Fix scaling for apps" option is checked (Right-click desktop -> Display Settings -> Scale and layout -> Advanced scaling settings -> Fix scaling for apps -> Let Windows try to fix apps so they’re not blurry. This option is checked by default on Windows 10). Some controls' sizes are handled by Windows, and if "Let Windows try to fix apps so they’re not blurry" is not checked, the control sizes will not scale automatically.
-
The measurement unit Pixel used in scripts may not calculate properly.
If you use pixel values in the application, note that pixel values will change significantly at high DPI because it will use the real monitor pixel in PerMonitorV2. Check and adjust the corresponding code, as well as some PowerBuilder control events that pass pixel value parameters. Currently, no auxiliary classes are provided to help users with these calculations.
-
UI rendered by Windows APIs or UI frameworks is not supported.
PowerBuilder cannot optimize the UI elements that are rendered by the Windows APIs or UI frameworks. You will need to implement support of high DPI for these UI elements by yourself.
-
Proportional scaling of non-TrueType fonts is not supported.
If controls use non-TrueType fonts, the fonts and controls may not scale in the same ratio, causing visual discrepancies (e.g., text may not fully display within controls).
Solution: Most fonts are TrueType, but some legacy projects may use non-TrueType fonts. Adjusting the font can bypass this issue.