1

Bird (Demo)를 조롱하여 제공되는 것과 같은 눈금 기능에 맞는 비주얼 디자이너를 만드는 중입니다. 가능한 한 빨리 Silverlight에서 같은 것을 개발하는 데 도움이되는 프로젝트, 사용자 정의 컨트롤 또는 리소스가 있습니까?Silverlight에서 눈금 맞추기

나는 도구 상자 (목록 상자)에서 디자이너 화면 중앙의 캔버스로 끌어서 놓기 작업을 수행 할 수있었습니다. 그러나 그리드 및 그리드 기능에 대한 스냅 기능은 설계자가 갖는 뛰어난 기능입니다.

답변

0

MouseMove 루틴에서 스냅을 허용하려면 추가 조정이 필요합니다.

void MainImage_MouseMove(object sender, MouseMoveEventArgs args){ 

    // ... assume you have calculated newX and newY already 

    adjustSnap(ref newX, ref newY); 

    // ... position your element 

} 

bool _isSnapOn = true; 

void adjustSnap(ref double x, ref double y) 
{ 
    const double gridWidth = 100; 
    const double gridHeight = 100; 

    if (_isSnapOn) 
    { 

     if (x % gridWidth < gridWidth/2) 
      x -= x % gridWidth; 
     else 
      x += (gridWidth - x % gridWidth); 

     if (y % gridHeight < gridHeight/2) 
      y -= y % gridHeight; 
     else 
      y += (gridHeight - y % gridHeight); 
    } 
} 
+0

로직이 시도해 볼 가치가있는 것처럼 보입니다. 지금 작업하고 다시 돌아올 것입니다. – Deeptechtons