10-11-2026 09:51 AM - edited 10-11-2026 10:09 AM
I wish NI provided an easier solution for this. I'd trade Nigel for non-fuzzy windows and more modern and flexible controls.
10-11-2026 10:15 AM - edited 10-11-2026 10:21 AM
@FlatCat wrote:
I wish NI provided an easier solution for this. I'd trade Nigel for non-fuzzy windows and more modern and flexible controls.
If you're talking about the manifest, it's here in the Build Properties, and it seems to work, indeed:
So, the whole part about using mt.exe and Python/Rust code to embed the manifest is not applicable. There's a simpler solution (the manifest itself was shown in the comment above).
And, by the way, this won't be appended to the existing manifest; it will replace it completely:
good to know.
10-11-2026 10:49 AM
Cool! I did look through the Build Spec for a mention of manifest files, but didn't inspect the Security section thoroughly enough. I was thinking more along the lines of a checkbox in the build spec that says something like "handle HiDPI more gracefully", and which would put the relevant text into the manifest file. But this at least goes part of the way.
10-12-2026 05:50 AM
The manifest using PerMonitorV2 would require a lot of programming to have the app scale properly?
NI's recommendation is to set the Scaling performed by to System (Enhanced). Then you don't have to do anything in the code. Google tells me that this is the manifest for that:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<asmv3:application>
<asmv3:windowsSettings>
<!-- Tells Windows that the app is not DPI-aware, forcing OS bitmap scaling so the UI doesn't become microscopically small -->
<dpiAware xmlns="http://microsoft.com">false</dpiAware>
<!-- Enables GDI scaling, which is the internal Windows name for the "System (Enhanced)" compatibility mode -->
<gdiScaling xmlns="http://microsoft.com">true</gdiScaling>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
<dpiAware>false</dpiAware>: Tells Windows that LabVIEW is pixel-based and cannot scale itself. Windows handles the layout scaling so your buttons and windows stay the correct physical size.
<gdiScaling>true</gdiScaling>: This is the magic flag for System (Enhanced). Instead of stretching the UI like a low-res bitmap, Windows dynamically rerenders fonts and standard GDI vector graphics at the monitor's native resolution.
10-12-2026 10:05 AM
@thols wrote:
The manifest using PerMonitorV2 would require a lot of programming to have the app scale properly?
NI's recommendation is to set the Scaling performed by to System (Enhanced). Then you don't have to do anything in the code...
<gdiScaling>true</gdiScaling>: This is the magic flag for System (Enhanced). Instead of stretching the UI like a low-res bitmap, Windows dynamically rerenders fonts and standard GDI vector graphics at the monitor's native resolution.
10-12-2026 11:27 AM
NI's recommendation of setting the High DPI override to System Enhanced definitely makes a difference. It's subtle, and yet to my eye makes the UI more crispy and appealing.
The question is how to get the corresponding element, <gdiScaling>true</gdiScaling>, into the built app's internal manifest. I can find the exe's manifest just by searching through the contents of the exe file with a text editor (TotalPE2 doesn't let you copy the manifest text that it shows you). The manifest is quite long, and so I don't imagine you can just replace it with something short that only contains the scaling element. I will try extracting the manifest from the built exe, adding the scaling element to create a new manifest file, and then rebuilding the app using that file in the Embed Manifest File option of the build spec. That is perhaps a naive approach. I can try mt.exe if it doesn't work.
By the way, the built app's manifest contains this:
<dpiAware>false</dpiAware>