.Net] 배율 맞추기 II
# 1) 프로그래밍2012. 3. 25. 11:18
배율 관련 I http://aseuka.tistory.com/358
음... 사이즈 배율 조절하기인데...
음... 조금 고민거리가 있긴하다
배율조정하면 이게 좌표가 자꾸 바뀌므로 가운데 이동을 시켜주는데...
그냥 해당 위치만큼 off 조절하는 로직을 고민해봐야겠음.
void ZoomIn()
{
int idx = toolStripComboBox1.ComboBox.SelectedIndex;
if (Factors.Length > toolStripComboBox1.ComboBox.SelectedIndex + 1)
toolStripComboBox1.ComboBox.SelectedIndex++;
}
void ZoomOut()
{
int idx = toolStripComboBox1.ComboBox.SelectedIndex;
if (0 <= toolStripComboBox1.ComboBox.SelectedIndex - 1)
toolStripComboBox1.ComboBox.SelectedIndex--;
}
void ZoomSet(int Idx)
{
if (0 <= Idx && Idx < Factors.Length)
{
float SelectFactor = Factors[Idx];
float FactorF = SelectFactor / OldFactor;
ControlScale(toolStripContainer1.ContentPanel.Controls, FactorF);
OldFactor = SelectFactor;
CenterMove();
}
}
private void ControlScale( Control.ControlCollection ctrls, float FactorF)
{
if( ctrls == null ) return;
foreach (Control ctrl in ctrls)
{
if (ctrl.Tag != null) continue;
ctrl.Scale(new SizeF(FactorF, FactorF));
ctrl.Font = new Font(ctrl.Font.FontFamily, ctrl.Font.Size * FactorF);
// 최상위 컨트롤의 AutoScaleMode = None!!설정
if (ctrl.Controls != null && ctrl.Controls.Count > 0)
{
ctrl.Width = ctrl.Controls[0].Width + GS_Class_UI_Config.Margin;
ctrl.Height = ctrl.Controls[0].Height + GS_Class_UI_Config.Margin;
ctrl.Controls[0].Left = GS_Class_UI_Config.OffSet_XY;
ctrl.Controls[0].Top = GS_Class_UI_Config.OffSet_XY;
}
}
}
음... 사이즈 배율 조절하기인데...
음... 조금 고민거리가 있긴하다
배율조정하면 이게 좌표가 자꾸 바뀌므로 가운데 이동을 시켜주는데...
그냥 해당 위치만큼 off 조절하는 로직을 고민해봐야겠음.
void ZoomIn()
{
int idx = toolStripComboBox1.ComboBox.SelectedIndex;
if (Factors.Length > toolStripComboBox1.ComboBox.SelectedIndex + 1)
toolStripComboBox1.ComboBox.SelectedIndex++;
}
void ZoomOut()
{
int idx = toolStripComboBox1.ComboBox.SelectedIndex;
if (0 <= toolStripComboBox1.ComboBox.SelectedIndex - 1)
toolStripComboBox1.ComboBox.SelectedIndex--;
}
void ZoomSet(int Idx)
{
if (0 <= Idx && Idx < Factors.Length)
{
float SelectFactor = Factors[Idx];
float FactorF = SelectFactor / OldFactor;
ControlScale(toolStripContainer1.ContentPanel.Controls, FactorF);
OldFactor = SelectFactor;
CenterMove();
}
}
private void ControlScale( Control.ControlCollection ctrls, float FactorF)
{
if( ctrls == null ) return;
foreach (Control ctrl in ctrls)
{
if (ctrl.Tag != null) continue;
ctrl.Scale(new SizeF(FactorF, FactorF));
ctrl.Font = new Font(ctrl.Font.FontFamily, ctrl.Font.Size * FactorF);
// 최상위 컨트롤의 AutoScaleMode = None!!설정
if (ctrl.Controls != null && ctrl.Controls.Count > 0)
{
ctrl.Width = ctrl.Controls[0].Width + GS_Class_UI_Config.Margin;
ctrl.Height = ctrl.Controls[0].Height + GS_Class_UI_Config.Margin;
ctrl.Controls[0].Left = GS_Class_UI_Config.OffSet_XY;
ctrl.Controls[0].Top = GS_Class_UI_Config.OffSet_XY;
}
}
}
'# 1) 프로그래밍' 카테고리의 다른 글
.NET] 트리 뷰_ 체크박스 - 더블클릭 (0) | 2012.04.09 |
---|---|
.net ] 한글 유니코드 변환 (0) | 2012.04.07 |
.Net] 가운데 이동 (0) | 2012.03.25 |
.Net] 양쪽 맞춤. (0) | 2012.03.25 |
.Net] C# 객체 숨기기.... (0) | 2012.03.22 |