Bug: Fix/improve DPI handling
Describe the bug
Despite HASS.Agent app reporting that it is Per-monitor DPI Aware the DPI processing is not correct.
It seems that only the main window looks ok, all other windows have elements sizing issues.
Current workaround is to override DPI settings for the HASS.Agent executable with the "System (Enhanced)" value (which disables DPI handling by the application).
Possible solutions: improve interface scaling or make the app report itself as non-DPI Aware to let the OS handle scaling.
To Reproduce
- Set display scale to something greater than 100%
- Restart
HASS.Agentapp - Open tray menu, configuration window, quick actions window
- See issues with elements sizing
Expected behavior Interfaces scales correctly
Screenshots



Misc info (please complete the following information):
- Windows build (ideally screenshot/info of
winver.exeoutput): Windows 11 Pro 22H2 22621.160 - Windows' UI language: English
- HASS.Agent version: 2022.13.0-beta1
Please check what's applicable (multiple answers possible):
- [x] Installed via installer
- [ ] Installed manually
- [x] Problem occurs in HASS.Agent
- [ ] Problem occurs in Satellite Service
Blegh, so ugly. I'm aware and I'm very sorry. I've already been messing with it for hours, but the current combination of winforms/syncfusion just isn't working out.
So I'll probably have to rebuild the entire app from the ground up, you can imagine I'm not really looking forward to that :p
I've created a ticket: [hassagent-112]
I'm closing this ticket, not because I'm not doing it, but to keep the GitHub list tidy and all my todo's in one place. I'll report back here when I've fixed this!
@LAB02-Admin what about disabling the DpiAwareness flag for the app for now?
https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/winforms/
https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/winforms/windows-forms-add-configuration-element (check the DpiAwareness key).
Windows is able to handle the app resizing ok, as far as I can see:

Yea that was my initial workaround, but then the new webview doesn't render correctly [#62] :(
Current workaround is to override DPI settings for the HASS.Agent executable with the "System (Enhanced)" value (which disables DPI handling by the application).
@LAB02-Admin with this workaround the webview sizing is correct for me 🤔So not sure what was causing issues in #62
Oh, interesting! I'll look into it and do some more tests, thanks :)
@LAB02-Admin what about disabling the
DpiAwarenessflag for the app for now? https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/winforms/https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/winforms/windows-forms-add-configuration-element (check the
DpiAwarenesskey).
I wanted to test this by adding an app-config file in the HASS.Agent directory. Unfortunately it does not seem to work. Might need to be defined in the application itself to be read?
HASS.Agent.exe.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="false" />
</System.Windows.Forms.ApplicationConfigurationSection>
</configuration>
Update: I guess .net 6 applications do not read the .config file. Also tried this aproach in HASS.Agent.runtimeconfig.json
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"Switch.System.Windows.DoNotScaleForDpiChanges": true
}
Implemented in the latest beta, let me know how it works out: https://github.com/LAB02-Research/HASS.Agent/releases/tag/2022.13.0-beta2
@LAB02-Admin Hi! Yes, it works for me. Thank you!