이번 포스팅에서는


1. 선택된 행, 열의 갯수를 지정하는 의존속성(Dependency Property) 생성

2. 작은 사각형(CustomRectangle) 에 마우스 이벤트 구현


을 진행하도록 하겠다.


---------------------------------------------------

1. 선택된 행, 열의 갯수를 지정하는 의존속성(Dependency Property) 생성


의존속성은 이전 포스팅에서도 다루었지만 쉽게 생성하여 일반 전역변수처럼 사용할 수 있다.


다음과 같이 행(Row), 열(Column) 에 해당하는 의존속성을 생성하도록 한다.





여기에 덧붙여, 앞의 과정에서 사각형들을 생성할 때 사용했던 변수들(MaxRows, MaxColumns, RectangleSize, ...) 등도 의존속성으로 생성하여, 추후 변경이 쉽게 가능하도록 생성하였다.


---------------------------------------------------

2. 작은 사각형(CustomRectangle) 에 마우스 이벤트 구현


사각형들 위에서 마우스가 움직일 때마다 사각형들을 선택 혹은 해제하도록 하는 과정이 필요하다.

이를 위해서 앞에서 CreateRectangles() 함수 내부에서 생성한 CustomRectangle 각각에 이벤트를 연결하는데, 

연결할 이벤트는 MouseEnter, MouseLeftButtonUp 의 2개이다.


MouseEnter의 경우 마우스가 이동할 때마다 사각형들을 선택/해제 하도록 하고

MouseLeftButtonUp 의 경우 해당 사각형에 맞는 행, 열의 갯수를 선택하도록 한다.


각 사각형들마다 Row, Column 값을 가지고 있으므로, 

한 사각형에 MouseEnter 이벤트가 발생하면, 해당 사각형보다 Row, Column 이 작은 사각형들을 하이라이트 해주고,

한 사각형에 MouseLeftButtonUp 이벤트가 발생하면, 해당 사각형의 Row, Column 값을 1. 에서 생성한 의존 속성에 넣어주면 된다.




* 위에 언급한 것 외에 팝업을 닫고, Custom RoutedEvent 를 발생시키는 등의 작업이 필요할 수 있다.


---------------------------------------------------

여기까지 완료한 후 실행한 결과는 다음과 같다.








+ Recent posts