mirror of
https://github.com/cyanfish/naps2.git
synced 2024-10-04 19:37:15 +03:00
Fix ImageForm glitches
This commit is contained in:
parent
dae187ffb5
commit
de890cac38
@ -31,8 +31,9 @@ namespace NAPS2.Util
|
||||
{
|
||||
return;
|
||||
}
|
||||
var bottomAnchorControls = FindAndRemoveBottomAnchor(control.FindForm());
|
||||
int height = control.Height + margin;
|
||||
int bottom = LocationInForm(control).Y + height;
|
||||
int bottom = LocationInForm(control).Y + control.Height;
|
||||
foreach (var c in EnumerateParents(control))
|
||||
{
|
||||
c.Height -= height;
|
||||
@ -45,6 +46,7 @@ namespace NAPS2.Util
|
||||
}
|
||||
}
|
||||
control.Visible = false;
|
||||
AddBottomAnchor(bottomAnchorControls);
|
||||
}
|
||||
|
||||
public static void Show(Control control, int margin = 0)
|
||||
@ -53,6 +55,7 @@ namespace NAPS2.Util
|
||||
{
|
||||
return;
|
||||
}
|
||||
var bottomAnchorControls = FindAndRemoveBottomAnchor(control.FindForm());
|
||||
int height = control.Height + margin;
|
||||
int top = LocationInForm(control).Y;
|
||||
foreach (var c in EnumerateParents(control))
|
||||
@ -67,6 +70,7 @@ namespace NAPS2.Util
|
||||
}
|
||||
}
|
||||
control.Visible = true;
|
||||
AddBottomAnchor(bottomAnchorControls);
|
||||
}
|
||||
|
||||
public static void LockHeight(Form form)
|
||||
@ -95,6 +99,12 @@ namespace NAPS2.Util
|
||||
return EnumerateParents(control).SelectMany(x => x.Controls.Cast<Control>()).Except(parentsAndSelf);
|
||||
}
|
||||
|
||||
private static IEnumerable<Control> EnumerateDescendents(Control control)
|
||||
{
|
||||
var children = control.Controls.Cast<Control>().ToList();
|
||||
return children.Concat(children.SelectMany(EnumerateDescendents));
|
||||
}
|
||||
|
||||
private static Point LocationInForm(Control control)
|
||||
{
|
||||
var x = control.Location.X;
|
||||
@ -109,5 +119,23 @@ namespace NAPS2.Util
|
||||
}
|
||||
return new Point(x, y);
|
||||
}
|
||||
|
||||
private static List<(Control, AnchorStyles)> FindAndRemoveBottomAnchor(Form form)
|
||||
{
|
||||
var controls = EnumerateDescendents(form).Where(x => (x.Anchor & AnchorStyles.Bottom) == AnchorStyles.Bottom).Select(c => (c, c.Anchor)).ToList();
|
||||
foreach (var (c, a) in controls)
|
||||
{
|
||||
c.Anchor = a & ~AnchorStyles.Bottom | AnchorStyles.Top;
|
||||
}
|
||||
return controls;
|
||||
}
|
||||
|
||||
private static void AddBottomAnchor(List<(Control, AnchorStyles)> controls)
|
||||
{
|
||||
foreach (var (c, a) in controls)
|
||||
{
|
||||
c.Anchor = a;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -74,6 +74,10 @@ namespace NAPS2.WinForms
|
||||
|
||||
private async void ImageForm_Load(object sender, EventArgs e)
|
||||
{
|
||||
checkboxApplyToSelected.BringToFront();
|
||||
btnRevert.BringToFront();
|
||||
btnCancel.BringToFront();
|
||||
btnOK.BringToFront();
|
||||
if (SelectedImages != null && SelectedImages.Count > 1)
|
||||
{
|
||||
checkboxApplyToSelected.Text = string.Format(checkboxApplyToSelected.Text, SelectedImages.Count);
|
||||
|
Loading…
Reference in New Issue
Block a user