Nuget 에 도형을 마우스로 그릴 수 있는 패키지가 있을까요?

Canvas에 도형을 그리는 문제를 해결하고 있습니다.
사실 마우스로 그리는것은 점찍기, 선긋기, 사각형 그리기는 구현한 상태인데,
사용자 경험상 이미 그린 도형을 선택하고, 지우고, 크기를 조절하고, 드래그해서 옮기는 기능들을 구현해야해서 직접 구현하려면 시간이 오래 걸릴듯 하여 Nuget에서도 찾아보고 구글링도 해보고 ChatGPT에게도 물어봤지만 이렇다할 솔루션을 못찾아 질문을 올려봅니다.

구글링해본 내용들은 특히 마우스 이벤트가 포함되있어서 그런지 MVVM 패턴으로 작성되어 있는것이 거의 없는 수준이네요. 이 문제를 이전부터 오래 겪어오고 구현도 여러번 해봤지만 정말 이거다 싶은 수준의 솔루션을 아직 찾지 못했습니다.

게시물중 도움되는 링크입니다.

1 Like

사실 말씀하신 도형(오브젝트)에 대해 UI/UX 처리는 WPF에서 기본적으로 제공 되고 있긴 합니다.

System.Windows.Controls.Primitives.Thumb 클래스를 상속받아 구현하면
사용자 드래그 앤 드롭 상태 및 오브젝트의 사이즈 처리 구현이 쉽게 가능합니다.

방법: Thumb을 사용하여 캔버스 크기 조정 - WPF .NET Framework | Microsoft Learn


또한 오브젝트가 선택되었을때 표시 처리 또한
System.Windows.Documents.Adorner 추상 클래스 상속 구현으로 가능 합니다.

방법: 표시기 구현 - WPF .NET Framework | Microsoft Learn


위 클래스 구현 방법 및 샘플 예제를 찾아 보시고, 직접 구현을 해보시는것을 추천 드립니다.

그리고, 오브젝트 편집의 실행 취소(Undo) / 다시 실행(Redo) 은
각 오브젝트가 Base로 구현되어 있는 구조에서
Command 패턴 으로 History를 관리해서 구현할 수 있습니다.

제가 구현했던 예제가 있긴 한데 해보시고 더 도움이 필요하시면 샘플 프로젝트 보내드리겠습니다.


112

6 Likes

도움 감사합니다!

1 Like

좋은 내용 감사 드립니다. 혹시 샘플 프로젝트를 받아볼 수 있을까요~?