實現步驟:
1.在窗體中放乙個容器(例如:panel),並且將容器的dock屬性設定為fill。窗體中其他控制項都放在這個容器中。
2.建立乙個窗體類,該類繼承於原始窗體類,並在新建的這個窗體類中新增如下**,以後建立的窗體都繼承於新建的這個窗體類:
#region
控制項縮放
double
formwidth;
//窗體原始寬度
double
formheight;
//窗體原始高度
double
scalex;
//水平縮放比例
double
scaley;
//垂直縮放比例
dictionary<
string
, string
> controlinfo =
newdictionary<
string
, string
>();
//控制項中心left,top,控制項width,控制項height,控制項字型size
//////
獲取所有原始資料
///protected
void
getallinitinfo(control crlcontainer)
foreach
(control item
incrlcontainer.controls)
}private
void
controlschangeinit(control crlcontainer)
private
void
controlschange(control crlcontainer)
double
itemwidth = pos[
2] * scalex;
double
itemheight = pos[
3] * scaley;
item.left = convert.toint32(pos[
0] * scalex - itemwidth / 2);
item.top = convert.toint32(pos[
1] * scaley - itemheight / 2);
item.width = convert.toint32(itemwidth);
item.height = convert.toint32(itemheight);
item.font =
newfont(item.font.name,
float
.parse((pos[
4] * math.min(scalex, scaley)).tostring()));}}
}#endregion
3.在新建的窗體類中重寫onsizechanged
事件,並呼叫
controlschangeinit和
controlschange方法,**如下:
protected
override
void
onsizechanged(eventargs e)
}4.在窗體的建構函式中呼叫
getallinitinfo方法,**如下:
getallinitinfo(
this
.controls[
0]);
C Winform控制項隨窗體縮放
實現步驟 1.在窗體中放乙個容器 例如 panel 並且將容器的dock屬性設定為fill。窗體中其他控制項都放在這個容器中。2.建立乙個窗體類,該類繼承於原始窗體類,並在新建的這個窗體類中新增如下 以後建立的窗體都繼承於新建的這個窗體類 region 控制項縮放 double formwidth ...
C winform 窗體縮放自適應
1.首先在窗體上放上乙個panel容器,並將容器的dock屬性設為fill,即所有的控制項都放在了這個容器裡。using system using system.collections.generic using system.drawing using system.text using syst...
C Winform 控制項大小隨窗體大小等比例縮放
在from1.cs中輸入如下 public form1 其中settag this 為控制項等比例縮放的方法 region 控制項大小隨窗體大小等比例縮放 private float x 定義當前窗體的寬度 private float y 定義當前窗體的高度 private void settag ...