C# - Effekt kontrol

forráskód letöltése
Most egy olyan Windows-os kontrolt készítünk, mely képes arra, hogy egy tetszőleges szöveget tetszőleges betűtípussal folyamatosan forgasson körbe-körbe a kontrol területén belül.
A készített kontrol a mellékelt RotateControlLibrary mappában található projektben van, melyek lefordítása után egy RotateControl kontrol felvehető a ToolBox-ra.
A kontrol animálásához annak folyamatos frissítése szükséges. Erről egy Timer komponens gondoskodik az Invalidate függvény rendszeres időközönkénti meghívásával, mely a kontrol újrarajzolását eredményezi. Ez a Timer gondoskodik arról is, hogy a counter nevű számláló értéke folyamatosan növekedjen. Ez a számláló határozza meg a kiírandó felirat szögét.
    private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
      counter+=5;
      Invalidate();
    }
A kontrol kirajzolását annak Paint eseményénél végezhetjük el. Itt az origót eltoljuk a Form közepére a TranslateTransform függvény felhasználásával, majd a RotateTransform-al beállítjuk a forgatás aktuális mértékét. Végül már csak a megjelenítendő szöveg kirajzolása van hátra a DrawString függvénnyel.
    private void RotateControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Graphics g = e.Graphics; 
      g.SmoothingMode = SmoothingMode.HighQuality;
      g.TranslateTransform(Width / 2, Height / 2);
      g.RotateTransform(counter);
      g.DrawString(text, Font, new SolidBrush(ForeColor), 0, 0, StringFormat.GenericDefault);
      g.ResetTransform();        
    }