HASS.Agent icon indicating copy to clipboard operation
HASS.Agent copied to clipboard

Bug: Fix/improve DPI handling

Open gorbunovav opened this issue 3 years ago • 7 comments

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

  1. Set display scale to something greater than 100%
  2. Restart HASS.Agent app
  3. Open tray menu, configuration window, quick actions window
  4. 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.exe output): 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

gorbunovav avatar Jun 27 '22 22:06 gorbunovav

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

LAB02-Admin avatar Jun 28 '22 07:06 LAB02-Admin

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 avatar Jun 28 '22 07:06 LAB02-Admin

@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: Screenshot 2022-06-28 132334

gorbunovav avatar Jun 28 '22 10:06 gorbunovav

Yea that was my initial workaround, but then the new webview doesn't render correctly [#62] :(

LAB02-Admin avatar Jun 28 '22 11:06 LAB02-Admin

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

gorbunovav avatar Jun 28 '22 12:06 gorbunovav

Oh, interesting! I'll look into it and do some more tests, thanks :)

LAB02-Admin avatar Jun 28 '22 12:06 LAB02-Admin

@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).

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
    }

ezpl avatar Jul 20 '22 09:07 ezpl

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 avatar Aug 12 '22 15:08 LAB02-Admin

@LAB02-Admin Hi! Yes, it works for me. Thank you!

gorbunovav avatar Aug 12 '22 19:08 gorbunovav