Skip to content

Commit

Permalink
Fixed strange visual bug when DPI is set to 130% or 131%.
Browse files Browse the repository at this point in the history
  • Loading branch information
TBXin committed Jun 5, 2017
1 parent 958ff1d commit 29ad852
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions src/NCore/UI/MenuButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -102,17 +102,29 @@ protected override void OnClick(EventArgs e)
m_menu.Focus();
}

protected override void OnPaint(PaintEventArgs e)
#region Overrides of Control
protected override void OnLayout(LayoutEventArgs e)
{
var actualDropDownArrowRectangleWidth = e.Graphics.ScaleToDpi(DropDownArrowRectangleWidth);
var paddingRight = actualDropDownArrowRectangleWidth / 2;
if (Padding.Right != paddingRight)
if (!string.Equals(e.AffectedProperty, "Padding")) return;

using (var gfx = CreateGraphics())
{
Padding = new Padding(Padding.Left, Padding.Top, Padding.Right + paddingRight, Padding.Bottom);
var actualDropDownArrowRectangleWidth = gfx.ScaleToDpi(DropDownArrowRectangleWidth);
var paddingRight = actualDropDownArrowRectangleWidth / 2;
if (Padding.Right != paddingRight)
{
Padding = new Padding(Padding.Left, Padding.Top, paddingRight, Padding.Bottom);
}
}
base.OnLayout(e);
}
#endregion

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

var actualDropDownArrowRectangleWidth = e.Graphics.ScaleToDpi(DropDownArrowRectangleWidth);
if (ComboBoxRenderer.IsSupported)
{

Expand Down

0 comments on commit 29ad852

Please sign in to comment.