2012-02-09 6 views
1

캔버스에 셰이프를 그릴 수있는 응용 프로그램을 만들려고합니다. 일단 그려지면 사용자가 어떤 방식 으로든 모양을 선택, 이동, 크기 조정, 기본적으로 조작 할 수있게하고 싶습니다.캔버스 - 동적 드로잉 및 셰이프 관리

저는 XNA에서 비슷한 것을했는데 그리기 루프가 있었기 때문에 꽤 쉬웠습니다. Silverlight에서는 이해할 수있는 사항이 없으며 캔버스에서 객체를 관리하는 방법을 파악하는 데 어려움이 있습니다. 사용자가 수행하는 작업에 대한 UI의 적절한 응답을 보장하기 위해 캔버스의 하위 컬렉션을 관리하는 가장 좋은 방법은 무엇입니까?

대부분의 예제는 꽤 기본적인 것이고, 이런 종류의 것 근처에 가지 않습니다. 이전에이 작업을 해본 누군가가 문제에 어떻게 접근했는지 알려 주시면 감사하겠습니다.

답변

0

잠시 생각해 보면 어떻게 작동하는지 알았습니다.

캔버스에 대한 그리기 루프가 있으며,이 루프는 맨 위에있는 부모 컨테이너의 그리기 루프입니다. XNA와의 차이점은 캔버스에서 그릴 항목을 명시 적으로 그릴 필요가 없다는 것입니다. 왜냐하면 캔버스가 자동으로 자식 그리기를 처리하기 때문입니다.

캔버스에 추가하는 모든 객체를 유지하는 방법이 필요합니다 ... 객체 그리기 속성을 업데이트 할 수 있으며 변경 사항은 다음에 새로 고칠 때 캔버스에 반영됩니다.

내가 목록에 넣은 항목을 저장하는 일종의 사전이 가장 좋을 것 같아 ...?

아직 완성 된 답변이 아니지만 지금은 그 중 절반을 이해하고 있습니다.

+1

다음 일련의 기사가 도움이 될 수 있습니다. http://cgeers.com/2010/04/18/silverlight-asteroids-part-1-game-loop/. 작성자가 수행하는 첫 번째 작업 중 하나는 렌더 루프 및 스프라이트 목록 등을 사용하여 캔버스를 설정하는 것입니다. –

+0

매우 재미있었습니다. 감사! –

관련 문제