CLR: .Net / Mono / Boo / Otros CLR > C#
Animación de Botones parecido a la barra de Objectdock
Jeysscarr:
Hola... este es un pequeño método en el cual mando un picturebox que usare como boton para agrandarlo o reducirlo en tamaño mientras paso el mouse por encima del mismo con el fin de generar una especie de animación, he dejado un par de imagenes de los "botones" cuando muevo el mouse por encima de ellos...
Necesito que me colaboren con ideas para mejorar la "animación", como ponerle movimientos mas suaves.. o crear un control personalizado que permita agragar botones y al final comportarse como la barrita de stardock,.. Este es el codigo...
--- Código: C# ---public static void CambiarTamañoControl(ref PictureBox c, int cambio, bool aumento) { int i = 0; if (aumento) { for (i = 1; i <= cambio; i++) { if (i % 2 == 0) { c.Location = new Point(c.Location.X - 1, c.Location.Y - 1); } c.Width += 1; c.Height += 1; } } else { for (i = 1; i <= cambio; i++) { if (i % 2 == 0) { c.Location = new Point(c.Location.X + 1, c.Location.Y + 1); } c.Width -= 1; c.Height -= 1; } }
Para cuando pasa el mouse de entrada... mando a agrandar el picture en 40 pixeles.... manteniendo el punto central del control
--- Código: C# ---private void p1_MouseEnter(object sender, EventArgs e) { CambiarTamañoControl(ref p1, 40, true); }
lo mismo para cuando salgo.. pero obvio aqui el tamaño se reduce, debido al parametro "bool aumento" que en esta ocasion ha sido "false"
--- Código: C# ---private void p1_MouseLeave(object sender, EventArgs e) { CambiarTamañoControl(ref p1, 40, false); }
nikitocba:
y... para que la animacion sea mas fluida, podrias hacer un par de fotogramas en un gif, y cuando pasas el puntero del mouse por encima, muestra el gif animado, y ahi le podes dar la fluides que te guste a vos....
Jeysscarr:
SI claro.. en realidad ya he hecho algunos cambios... cmo dije la idea es crear una especie de control personalizable que se adapte a la interfaz y en el que el usuario pueda determinar como quiero mostrarlo, me gustaria ver codigos que permitieran por ejemplo que cuando el elemento del centro se agranda los de los lados tambien lo hagan pero en una escala distinta... para dar un estilo como en el dock de mac
nikitocba:
supe hacer algo parecido con wpf, ya te voy a buscarlo pero me acuerdo que le pasaba el valor del menu -1 para la izquierda y el +1 para la derecha y asi generaba un efecto de lupa.... cuando vuelva a arg te lo paso al codigo, en este momento me encuentro en ecuador... pero cuando vuelva a mi computadora te lo paso
Jeysscarr:
OK vale y asi me animo a terminar el control de dock similar al de mac
Navegación
[#] Página Siguiente
Ir a la versión completa