# 1) 프로그래밍

.Net] 가운데 이동

이꼬모꼬 2012. 3. 25. 11:15



한 판넬에 컨트롤들을 중심점으로 이동시키기 위해...

바로 중심점으로 이동시... 한번에 안되기도 한다? 왜일까? 오차?.. 오차 치고는 좀 컸는뎅...

원점으로 이동했다가 다시 중심점으로 이동시켜주니 잘 되던데.... 

private void CenterMove2()
{
            Rectangle rct = toolStripContainer1.ContentPanel.ClientRectangle;
            float cx = rct.Width / 2f + rct.Left;
            float cy = rct.Height / 2f + rct.Top;

            area = ContentRegion2();  // 중심점으로 이동시키고 모든 컨텐츠의 영역을 가져옴.
           
            float ccx = area.Width / 2f + area.Left;
            float ccy = area.Height / 2f + area.Top;

            foreach (Control ctrl in toolStripContainer1.ContentPanel.Controls)
            {
                ctrl.Left = ctrl.Left + (int)( (cx - ccx));
                ctrl.Top = ctrl.Top + (int)((cy - ccy));
            }

            area.X = area.X + (int)(cx - ccx);
            area.Y = area.Y + (int)(cy - ccy);

            ContentInvalidate();
}