Проблема с изменением размера окна в WinForms: мерцание и рассыпание на полоски при перетаскивании рамки
Я работаю над проектом в WinForms и столкнулся с проблемой при попытке изменить внешний вид окна. В частности, я хотел создать собственную рамку окна, используя элемент управления Panel. Для этого я написал код, который изменяет ширину окна при перетаскивании правой границы рамки. Код работает, но при перетаскивании рамки всё окно на мгновение рассыпается на полоски. Это выглядит очень некрасиво и мешает пользователю. Я ищу способ исправить эту проблему и сделать изменение размера окна более плавным и эстетичным. Также буду благодарен за любые советы по альтернативным способам реализации этой задачи.
Вот фрагменты кода:
Создаю правую границу окна
Panel rightPanel = new Panel();
rightPanel.BackColor = borderColor;
rightPanel.Width = 5;
rightPanel.Dock = DockStyle.Right;
Controls.Add(rightPanel);
rightPanel.Visible = true;
rightPanel.MouseMove += rightPanel_MouseMove;
Прописываю ей логику
private void rightPanel_MouseMove(object? sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
//this. = MousePosition.X;
this.Width = MousePosition.X - this.Location.X;
}
}