2011-10-08 5 views
1

획의 히트 테스트 영역이 작습니다. 스트로크 폭을 더 크게하더라도 히트 테스트는 동일하게 유지됩니다. 제 생각은 획을 그릴 때 두꺼운 폴리선을 그립니다. 그런 다음 폴리 라인이 적중 지역으로 작동 할 수 있습니다. 그러나 문제는 mousecapture를 사용하여 폴리 라인을 움직일 때 스트로크가 주변으로 이동하는 신호를 보내는 방법입니다.확대 Stroke.hittest area

내가 원하는 것은 좌표에서 스트로크를 다시 그릴 수 있도록 mousecapture에서 폴리 라인을 해제 할 때 mousecoordinates를 스트로크에 신호로 보내는 것입니다.

클래스를 상속하여 ID (각 획 + 폴리선이 동일한 ID를 가짐)를 추가하려고했으나 봉인 된 클래스이므로 상속 할 수 없습니다.

아이디어가 있으십니까?

P. 내 궁극적 인 목표는 사용자가 스트로크를 마우스로 한 방향으로 또는 다른 방향으로 움직일 수있게하는 것입니다.

답변

0

Stroke으로 설정하여 Polyline s Tag 속성을 사용할 수 있으며 태그가 다른 용도로 사용되지 않도록주의하십시오.

+0

Tag 속성에 mousecoordinates가있는 Point를 저장할 수 있습니다. 하지만 어떻게 이러한 좌표를 올바른 획에 전달합니까? 사용자는 여러 개의 스트로크를 그리지 않아도됩니다. – tutu

+0

스트로크 자체를 태그에 넣을 수 있습니다. 하나의 폴리 라인에는 하나의 획이 있습니다. –

+0

어떻게 그 태그 안의 스트로크를 사용합니까? 이 코드를 사용하여 획의 오른쪽 좌표를 넣고 다른 위치에서 다시 그릴 수 있습니다. foreach (polyLine.Tag의 StylusPoint p) { StylusPoint newpoint = new StylusPoint(); newpoint.X = p.X; newpoint.Y = p.Y; newStylusPointCollection.Add (newpoint); } 스트로크 newStroke = new Stroke (newStylusPointCollection); InkPresenterRoot.Strokes.Add (newStroke); – tutu

관련 문제