雙緩存

在做自定義控件的時候,很多時候爲了控件的美觀去重新畫控件,這裏需要雙緩存

 

有的時候微軟給的

  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+咱們可以相互討論討論

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章