Closed shwlee closed 2 years ago
이걸 하다보니 생각 났는데...
selection 과 panning 사이의 mouse capture 와 e.Handled 설정을 세팅하는 게 쉽지 않았던 걸로 기억해요. (그래서 item 내부에 자동으로 mouse capture 와 e.Handled 세팅을 하는 control이 들어있으면, 의도한대로 동작하지 않았던 걸루 기억합니다.)
그래서 아예 panning 과 selection 을 분리하도록 처리했던 거 같은데 지금 구조에서는 요정도가 되지 않을까 싶어요.
한 번 보시죵
와 진짜 예술입니다.
이렇게 사용할 수 있는거군요.....ㅠㅠ
몇 가지 문의 사항이 있습니다!!!
아래 코드를 통해서
`<control:DisplayPresenter
X="{Binding X.Value}"
Y="{Binding Y.Value}"
Label="{Binding Name.Value}"
` 이렇게 빼서 ContentControl을 상속받는 DisplayPresenter로 갱신해주는 역할을 만드신거죠? 전부다 DP형식이니까 OnPropertyChange같은 메소드도 필요없는건가보네요.
DefaultStyleKeyProperty.OverrideMetadata...
https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.frameworkelement.defaultstylekey?view=net-5.0 설명을 봐도 한국어를 번역한거라서 그런지 전혀 이해가 안되네요. 그냥 쉽게 말해서 화면을 다시 갱신해준다 아닌가요??;;;;;;;
Style.xaml은 사용 안되고, ListBox 와꾸 구성은 Generic.Xam로 바뀌었네요??
"InCanvasMovingBehavior"에서 사용되는 DP들 name있잖아요?
"Captured", "PanningTarget", "X", " Y" 이렇게 등록하면...
<Setter Property="behaviors:InCanvasMovingBehavior.PanningTarget" Value="{Binding RelativeSource={RelativeSource Self}}" />
이런식으로 연결해서 활용할 수 있나보네요..ㅠㅠ
예를 들어 Rectangle 요소를 클릭하면, IsSelected의 값에 바인딩되서 Captured로 e.NewValue (셀렉팅이 바뀌면 IsSelected == true인가보네요)
커스텀해주셔서 감사합니다. 정말 오늘 많이 배웠습니다.
너무 감사합니다.
~ㅁ~
답변 정말 감사드립니다!!^^
넵넵 연구해보고 또 질문 드리겠습니다.
이제 저는 드래그앤드롭을 이용한 멀티셀렉팅과 마우스 휠, 캔버스 휠클릭을 이용한 확대 축소를 연구해보겠습니다.. ><
추천해주실만한 접근법이 있다면 조언 부탁드립니다.~
다시한번 감사드립니다!