Мерцание нижнего края формы при масштабировании за верхний край - C#
Формулировка задачи:
Доброго времени суток. Столкнулся с проблемой. У меня есть форма со стилем FormBorderStyle = None. Мне надо её масштабировать за края. Делаю это следующим образом (пока что только для верхнего края формы и вертикального масштабирования):
Всё масштабируется, всё прекрасно. НО! Дребезжание нижнего края формы сводит меня с ума!!! Пробовал использовать на форме DoubleBuffer = true, но результат тот же. Особо сильно это видно, когда при масштабировании резко дёргаешь мышью.
Возможно ли это как-нибудь вылечить? Или всё бесполезно?
Обратил внимание, в проводнике, при масштабировании, так же себя ведёт строка состояния...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace floatingPicture
{
public partial class pictureForm : Form
{
public pictureForm()
{
InitializeComponent();
}
private Point startingMousePosition;
private bool canResize = false;
private bool resizingForm = false;
private void pictureForm_MouseDown(object sender, MouseEventArgs e)
{
if (canResize)
{
resizingForm = true;
startingMousePosition = e.Location;
}
}
private void pictureForm_MouseMove(object sender, MouseEventArgs e)
{
if (resizingForm)
{
this.Top += e.Y - startingMousePosition.Y;;
this.Height -= e.Y - startingMousePosition.Y;;
}
else
{
if (e.Y <= 3)
{
this.Cursor = Cursors.SizeNS;
canResize = true;
}
else
{
this.Cursor = Cursors.Arrow;
canResize = false;
}
}
}
private void pictureForm_MouseUp(object sender, MouseEventArgs e)
{
canResize = false;
resizingForm = false;
}
}
}Решение задачи: «Мерцание нижнего края формы при масштабировании за верхний край»
textual
Листинг программы
typeof(Control).GetProperty(@"DoubleBuffered", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(pictureBox1, true, null);