2011-08-07 95 views
0

動畫形象我想在文本框繪製的動畫形象,我Google我的問題,但我得到的文本框繪製一個固定的形象像ExtRichTextBox一些例子。繪製文本框中

+0

什麼樣的文本框的? Windows窗體? WPF? Silverlight的?的WebForms? –

+0

我想在Windows窗體中使用它 –

回答

1

那麼,如果你可以得出一個固定的形象,你且說動畫簡直是在一些間隔改變這種固定圖像的問題。我假設你已經可以完成固定圖像位,所以只需設置一個計時器,該計時器將在某個時間間隔內使用新幀重新繪製圖像。

private void SomeTimer_Tick(...) 
{ 
    UpdateAnimation(); 
} 

private int _frameCount; 
private const int MaxFrames = //whatever, you need to determine this 
private void UpdateAnimation() 
{ 
    _frameCount = (_frameCount + 1) % MaxFrames; 
    var image = GetFrame(_frameCount); 
    // draw the new frame 
} 

private const int FrameWidth = // again, you need to determine this 
private const int FrameHeight = // again, you need to determine this 
private Bitmap GetFrame(int frame) 
{ 
    // assumes frames are lined up horizontally on a sheet 
    var rect = new Rectangle(frame * FrameWidth, 0, FrameWidth, FrameHeight); 

    // you could create the frames up front to avoid many calls to Clone() 
    return MySpriteSheet.Clone(rect, MySpriteSheet.PixelFormat); 
} 
+0

感謝您的回答,但沒有其他方式繪製動畫圖像?!因爲我想在像雅虎通話對話形式的環境中使用它。而圖像的數量不只是一個。 –

+0

我不知道你在問什麼。當然,幀數大於1,否則它不會是動畫。通常情況下,您將擁有包含動畫每幀的單個圖像,然後像我在示例中那樣從中選擇性地抓取幀。在WPF中有可用的動畫類可以使事情變得更容易一些,但是設置一個定時器來在某個時間間隔內改變圖像是微不足道的。 –

+0

建議我們有一些gif格式的圖片,所以我們要替換它們而不是像:)或者一些字符串:和其他人一樣(比如使用對話形式的工作)。現在,我想在C#環境中做這樣的工作。你有什麼理由這樣做?! –