0

I am creating a notepad type application using C# Winforms on my windows 10 PC having high DPI Scaling.

When I run the same application on my old Win8 laptop having low dpi scaling, my toolstrip icons are looking somewhat bigger and menu strip is been somewhat stretched out.

That's why I tried this following solution

  • Set AutoScaleMode on Form to Font
  • Set AutoSize property of ToolStrip and menustrip to true
  • Set ImageScaling property of ToolStripItem to SizeToFit

I tried this above solution from Resizing ToolStrip item's image but didn't seem to work for me.

I have also added manifest to my Project supported all OS compability

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
  <!-- Windows Vista -->
  <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
  <!-- Windows 7 -->
  <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
  <!-- Windows 8 -->
  <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
  <!-- Windows 8.1 -->
  <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
  <!-- Windows 10 -->
  <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>

Also I have set a dpi aware in Program.cs

 [System.Runtime.InteropServices.DllImport("user32.dll")]
    private static extern bool SetProcessDPIAware();

 // and this in Main
 SetProcessDPIAware();

Still, the problem is not fixed. Is there any solution for this :(

  • That is by design for AutoScaleMode = Font. Smaller type needs proportionally more space due to hinting and pixel grid fitting. So you get slightly larger controls to give that text enough space. AutoScaleMode = Dpi does not do this. It is always easier to scale a UI design up, you'd have to design at 100% (aka 96 dpi). – Hans Passant Apr 08 '18 at 15:45
  • Is there any chance to set 96 dpi to my solution now. – Kaustubh Patange Apr 09 '18 at 05:06

0 Answers0