Witam szybko wyjaśnię co robi aplikacja
Rozparasowuje pliki RTF
i rysuje płynący tekst na panelu na którym jest odtwarzacz multimediów
próbuje na kilka sposobów
ale za każdym razem przy większej ilości czcionek zaczyna przebijać tło i smużyć
przerobiłem lekko kod z http://www.java2s.com/Code/CSharp/2D-Graphics/NoFlickerFlickerFreeAnimation.htm
Działa jak jest mało tekstu przy większej ilości zaczynają się wyżej wymienione problemy
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
// to avoid a design-time error we need to add the following line
if (e.ClipRectangle.Width == 0)
{
return;
}
int pointX = 0;
base.OnPaint(e);
Bitmap bufl = new Bitmap(e.ClipRectangle.Width, e.ClipRectangle.Height);
Graphics g = Graphics.FromImage(bufl);
g.FillRectangle(new SolidBrush(this.BackColor), e.ClipRectangle);
for (int i = 0; i < Ile; i++)
{
SolidBrush digitsColor = new SolidBrush(Kolor[i]);
Font textFont = new Font("Arial", (float)FontSizes[i], Style[i]);
try
{
textFont = new Font(FontName[i], (float)FontSizes[i], Style[i]);
}
catch { }
g.DrawString(tresc[i], textFont, digitsColor, position + pointX, 0);
pointX = pointX + (int)g.MeasureString(tresc[i], textFont).Width;
}
e.Graphics.DrawImageUnscaled(bufl, 0, 0);
g.Dispose();
if (position < -pointX)
{
position = this.Width;
}
}