Эффект масштабирования на кнопках внутри FlowLayoutPanel

У меня есть несколько кнопок внутри FLP, и я хочу, когда мышь находится над кнопкой, немного увеличить размер кнопки, как эффект масштабирования. Проблема в том, что когда размер кнопки увеличивается, все кнопки рядом с ней скользят вправо и вниз. Вероятно, проблема вызвана пространством, добавляемым FLP между элементами, но как я могу предотвратить это, поэтому, когда размер увеличивая, чтобы пройти через это пространство, чтобы не добавить больше ..?

Мой класс ZOOM:

class zoom
    {
        public zoom(Control cst)
        {
            cst.MouseEnter += delegate(object sender, EventArgs e)
            {
                cst.Size = new Size(70, 75);    
                cst.Font = new Font(cst.Font.FontFamily, 9);                    
            };
            cst.MouseLeave += delegate(object sender, EventArgs e)
            {
               cst.Size = new Size(68, 73);
               cst.Font = new Font(cst.Font.FontFamily, 8);
            };
}

}


person alex Alex    schedule 15.05.2014    source источник


Ответы (1)


Так работает FlowLayoutPanel. Он перемещает остальные элементы управления, чтобы они поместились в соответствии с потоком.
Если у вас есть пространство между кнопками, это из-за свойства Margin, вы можете уменьшить поле кнопки при ее масштабировании.
Это не сработает, если вы хотите, чтобы кнопка отображалась поверх других. В этом случае, вероятно, единственный выход — использовать простую панель вместо FlowLayoutPanel и выполнить метод BringToFront() с масштабированием.

person ioritzHO    schedule 15.05.2014
comment
я не хочу, чтобы кнопка отображалась поверх других, только чтобы сделать ее немного больше. Я постараюсь уменьшить маржу. Спасибо! - person alex Alex; 15.05.2014
comment
В этом случае, глядя на размеры, уменьшающие на пиксель поля каждой стороны, все будет в порядке. ;) Удачи. - person ioritzHO; 15.05.2014