Browse Source

Merge pull request #3348 from CreateAndInject/FixHighDpi

Fix high Dpi, close #3347
pull/3350/head
Siegfried Pammer 1 year ago committed by GitHub
parent
commit
51aac5f38e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 9
      ILSpy/Controls/CustomDialog.cs

9
ILSpy/Controls/CustomDialog.cs

@ -51,9 +51,8 @@ namespace ICSharpCode.ILSpy.Controls @@ -51,9 +51,8 @@ namespace ICSharpCode.ILSpy.Controls
using (Graphics g = this.CreateGraphics())
{
Rectangle screen = Screen.PrimaryScreen.WorkingArea;
SizeF size = g.MeasureString(message, label.Font, screen.Width - 20);
Size clientSize = size.ToSize();
SizeF size = TextRenderer.MeasureText(message, label.Font);
Size clientSize = new Size((int)(size.Width * 96 / g.DpiX) + DockPadding.Left + DockPadding.Right, (int)(size.Height * 96 / g.DpiY) + DockPadding.Top + DockPadding.Bottom);
Button[] buttons = new Button[buttonLabels.Length];
int[] positions = new int[buttonLabels.Length];
int pos = 0;
@ -65,8 +64,8 @@ namespace ICSharpCode.ILSpy.Controls @@ -65,8 +64,8 @@ namespace ICSharpCode.ILSpy.Controls
string buttonLabel = buttonLabels[i];
newButton.Text = buttonLabel;
newButton.Click += new EventHandler(ButtonClick);
SizeF buttonSize = g.MeasureString(buttonLabel, newButton.Font);
newButton.Width = Math.Max(newButton.Width, ((int)Math.Ceiling(buttonSize.Width / 8.0) + 1) * 8);
SizeF buttonSize = TextRenderer.MeasureText(buttonLabel, newButton.Font);
newButton.Width = Math.Max(newButton.Width, ((int)Math.Ceiling(buttonSize.Width * 96 / g.DpiX / 8.0) + 1) * 8);
positions[i] = pos;
buttons[i] = newButton;
pos += newButton.Width + 4;

Loading…
Cancel
Save