Me preguntaba si había una manera de añadir una especie de animación de texto que aparece en un formulario.

Lo que yo tenía en mente cuando pensaba en esto era algo similar a lo que se puede hacer con el texto en PowerPoint (es decir, una máquina de escribir-como la animación en la que el texto está escrito de una en una, tiene todo el cuadro de texto aparecen con un cierto efecto etc), sólo estoy tratando de averiguar lo que usted puede hacer uso de Formularios Windows forms.

Actualmente estoy usando un cuadro de texto para mostrar la información en el formulario de solicitud, a pesar de que, en retrospectiva, me doy cuenta de etiquetas hubiera funcionado igual de bien.

EDICIÓN: resulta que yo estaba usando las etiquetas después de todo, yo sólo le dio un nombre con ‘textbox’ dentro por falta de una mejor descripción.

  • Este tipo de animaciones son difíciles de obtener, suave y desaparecer muy rápidamente. El uso de una Etiqueta con AutoEllipsis = True, se obtiene la descripción de forma gratuita.
  • A pesar de que es posible hacer en Winforms, le sugiero que utilice WPF. WPF tiene muchas más herramientas disponibles en su arsenal de sacar este tipo de efectos especiales. Considerar también, si usted se pega con Winforms, en busca de DirectX

2 Comentarios

  1. 3
    public partial class Form1 : Form
    {
        int _charIndex = 0;
        string _text = "Hello World!!";
        public Form1()
        {
            InitializeComponent();
        }
    
        private void button_TypewriteText_Click(object sender, EventArgs e)
        {
            _charIndex = 0;
            label1.Text = string.Empty;
            Thread t = new Thread(new ThreadStart(this.TypewriteText));
            t.Start();
        }
    
        private void TypewriteText()
        {
            while (_charIndex < _text.Length)
            {
                Thread.Sleep(500);
                label1.Invoke(new Action(() =>
                {
                    label1.Text += _text[_charIndex];
                }));
                _charIndex++;
            }
        }
    }
  2. 1

    Ahora, yo personalmente no lo hacen porque gratuitas animaciones tienden a molestar a los usuarios. Yo sólo uso la animación con moderación -, cuando en realidad tiene sentido.

    Que dijo, que sin duda puede hacer algo como:

     string stuff = "This is some text that looks like it is being typed.";
     int pos = 0;
     Timer t;
    
     public Form1()
     {
         InitializeComponent();
         t = new Timer();
         t.Interval = 500;
         t.Tick += new EventHandler(t_Tick);
     }
    
     void t_Tick(object sender, EventArgs e)
     {
         if (pos < stuff.Length)
         {
             textBox1.AppendText(stuff.Substring(pos, 1));
             ++pos;
         }
         else
         {
             t.Stop();
         }
     }
    
     private void button1_Click(object sender, EventArgs e)
     {
         pos = 0;
         textBox1.Clear();
         t.Start();
     }

    o algo por el estilo. Que va a marcar siempre la segunda mitad y agregar otro personaje para el cuadro de texto multilínea. Sólo un ejemplo de lo que alguien podría hacer.

Dejar respuesta

Please enter your comment!
Please enter your name here