Do you have a typical platform dependent issue you're battling with ? Ask it here. Make sure you mention your platform, compiler, and wxWidgets version.
Thank you very much. It helped me to address the issue. (only on a system where zoom level is125% and the resolution is1920x1080. It is not a hight DPI system.
Last edited by Anil8753 on Fri Aug 10, 2018 6:57 am, edited 1 time in total.
My bad, it created the bigger problem and I have to revert the High DPI Aware option.
After keeping the High DPI Aware option in the manifest file all the wxWidget3.1 changes for high dpi are not working.
I tried the High DPI Aware option on the surface where zoom level is 200% and resolution is 3000x2000.
Anil8753 wrote:Thank you very much. It helped me to address the issue. (only on a system where zoom level is125% and the resolution is1920x1080. It is not a hight DPI system.
Actually, a system where you set UI scaling to 125% is a high-DPI system, having DPI of 120 compared to standard 96.
After enabling "High DPI Aware" on High DPI Surface Pro (zoom 200%), UI became unusable as It was unusable with wx3.0 (wx3.0 was not having high DPI support).
With wx3.1, application layout works fine but it is coming blur, to solve the blur issue I did the manifest changes to make my application DPI-aware, it removed the blur effect but application layout went wrong, every layout looks smaller (unusable UI).
Interestingly, on another non-high dpi system where zoom level was 125%, was also facing the blur issue. But manifest file change mentioned by you solved the issue.
Note* issue more vigilant on 3K and 4K system. Hardcoded pixel sizes are not scaling (like 400px width button, 500pixel width panel etc).
That will not be possible. Many times we use hardcoded pixels for margin/padding. We have images 16x16 or 24x24 given by UX team, so automatic scaling is needed.
Even many places we can see hardcoded pixel values especially in the case of generic implementation.
Mac retina (4k) everything works fine where hard-coded pixels are scaled. Ideally SetSize(), SetMaxSize(), SetMinSize() should automatically take care of scaling.
I am not able to understand if I do not set the High DPI aware true, everything (hard-coded pixels/bitmap size) works fine, I do not see any UI distortion. only thing is they are blur.
I am not able to understand if I do not set the High DPI aware true, everything (hard-coded pixels/bitmap size) works fine, I do not see any UI distortion. only thing is they are blur.
That's because Windows will run your program in an "emulation" mode, it will render into an un-scaled offscreen buffer at 100%, then Windows itself will scale it up. That's why everything gets blurry.