이번 포스팅에서는
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 를 발생시키는 등의 작업이 필요할 수 있다.
---------------------------------------------------
여기까지 완료한 후 실행한 결과는 다음과 같다.