실버 라이트 베타 2 앱을 RC0으로 업그레이드하고 포인트를 자식 요소에서 부모로 변환하는 기능이 있습니다. 이 함수의 목적은 동일한 캔버스에 있지 않고 부모를 공유하지 않아도 요소가 요소 위에 정확하게 표시되도록하는 것입니다. 그것은 기존 및 신규 부모의 위치를 얻기 위해 MouseEventArgs.GetPosition 기능에 의존'TranslatePosition'을 Silverlight 베타 2에서 RC로 업데이트하는 가장 좋은 방법은 무엇입니까?
protected Point TranslatePosition(Point current, Panel from, Panel to, MouseEventArgs e)
{
Point rtn = new Point(-1, -1);
// get point relative to existing parent
Point fromPoint = e.GetPosition(from);
// get point relative to new parent
Point toPoint = e.GetPosition(to);
// calculate delta
double deltaX = fromPoint.X - toPoint.X;
double deltaY = fromPoint.Y - toPoint.Y;
// calculate new position
rtn = new Point(current.X - deltaX, current.Y - deltaY);
return rtn;
}
주의 사항 :
다음은 현재 기능입니다. 사용할 수있는 MouseEventArgs가없는 경우 우리는 새 인스턴스를 만들고이를 전달합니다. 이는 해킹 이었지만 작동하는 것처럼 보였습니다. 이제 RC0에서는 MouseEventArgs 생성자가 내부이므로이 해킹이 더 이상 작동하지 않습니다.
MouseEventArgs.GetPosition에 의존하지 않는 RC0의 포인트 변환 방법을 작성하는 방법에 대한 아이디어가 있습니까?
환상적인 산티아고! 이것은 완벽 해! –