在做自定義控件的時候,很多時候爲了控件的美觀去重新畫控件,這裏需要雙緩存
有的時候微軟給的
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.UserPaint, true);
不起作用,
我們可以自己定義畫布,在畫布上做操作,在將畫布貼到控件上。這樣就會避免白屏閃屏
/// <summary>
/// 內存畫筆
/// </summary>
private Graphics _memoryGraphics;
/// <summary>
/// 內存畫布
/// </summary>
private Bitmap _memoryBitmap;
/// <summary>
/// 背景
/// </summary>
private Bitmap _memoryBackground;
背景,我是用來,當控件的大小發生變化的時候,我先將當前內存畫布保存早背景,控件大小改變完之後我在將背景畫到內存畫布上,在把畫布畫到控件上。這可避免閃屏
這個是一個播放器的進度條
關於 gdi+咱們可以相互討論討論