控制項截圖,包括控制項不可見部分,即滾動條以外的部分

2021-05-22 05:20:35 字數 878 閱讀 6184

這個問題我在國內外網上搜了好久,一直都沒有找到方法,今天突然想到了以下辦法,解決了我幾天來的困擾,在此與大家分享了。

控制項中有乙個displayrectangle屬性,這個屬性比較有用,它指示的是控制項虛擬工作區即包括不可見部分的框區。知道我這個屬性後,我就想到了可不可以先把控制項工作區size放大到虛擬工作區那麼大,然後再用drawtoimage截圖,截完後再把控制項縮放回原來尺寸。按這種方法寫完**後發現還是沒法截控制項全屏。再仔細想了想,覺得問題可能出在控制項放大上,控制項放大時如果超過它父控制項的大小那是沒法放大的,鑑於此,我就把

1.控制項的父控制項先指向null,

2.再把控制項工作區size放大到虛擬工作區那麼大

3.然後再用drawtoimage截圖

4.截完後再把控制項縮放回原來尺寸

5.控制項的父控制項恢復原來值。

寫完**後果真有效,開心啊。

demo

control c= uc2.panel1.parent;

size s = uc2.panel1.size;

uc2.panel1.parent = null;

uc2.panel1.size = uc2.panel1.displayrectangle.size;

//uc2.panel1.update();

uc2.panel1.drawtobitmap(img, new rectangle(0, 0, uc2.panel1.displayrectangle.width,                        uc2.panel1.displayrectangle.height));

panel1.backgroundimage = img;

uc2.size = s;

uc2.panel1.parent = c;

View控制項可見性

第一種 gone 表示不可見並且不占用空間 第二種 visible 表示可見 第三種 invisible 表示不可見但是占用空間 可見與不可見的表現形式有兩種。在布局檔案中 android visibility gone android visibility visible android visi...

窗體控制項隨窗體大小改變 包括字型大小

是一篇vb編寫的,我只是把它翻譯成c 的.其實anchor和dock屬性也可以實現,但好象只對容器效果理想,而且字型大小也沒有變化.最近論壇上有好多這樣的貼子,具體實現 如下 private void settag control cons private void setcontrols floa...

C 實現窗體控制項隨窗體大小改變 包括字型大小

private float x private float y private void settag control cons private void setcontrols float newx,float newy,control cons float a convert.tosingle ...