이번 포스팅에서는 윈도우 창에 마우스 이벤트(더블클릭 or 오른쪽 클릭 or 왼쪽 클릭)를 날렸을때, 해당 이벤트가 무엇인지 메세지창으로 알려주는 법에 대해 알아보도록 하겠습니다.
1. 여러가지 이벤트
1) 마우스 더블 클릭(Double click)
//MainWindow.xaml
이곳은 그냥 빈화면으로 두겠습니다.
/MainWindow.xaml.cs(코드 비하인드)
여기서 우리가 집중해야할 부분은 더블클릭을 했을 경우 어떤 이벤트를 발생시킬지 결정하는 것입니다.
우리가 앞서 목표한바는 메세지창에 해당 내용이 뜨게하는것이었죠?
그렇기 때문에 MainWindow_MousedoubleClick함수에 관련 코드를 적어줍니다.
추가적으로 MouseDoubleClick 이벤트에 우리가 만든 함수를 연결시켜주는 작업으로 +=을 이용했습니다.
( += 가 낯선 분들은 델리게이트 포스팅을 참조 바랍니다.)
2) 마우스 오른쪽 클릭
더블클릭때와 같은 코드입니다. 차이가 있다면 이벤트가 MouseRightButtonDown 으로 변경 되었다는 것입니다.
3) 마우스 왼쪽 클릭
왼쪽 클릭 코드는 위와 같습니다. 같은 내용임으로 설명은 생략할게요!
지금까지는 윈도우창 전체를 기준으로 아무곳에 클릭해도 이벤트가 발생했다면, 범위를 좁혀 특정 요소를 클릭했을때만 발생시키려면 어떻게 할까요?
2. 특정 요소에만 이벤트 발생시키는법
1) 레이아웃
//MainWindow.xaml
아주 간단한 레이아웃을 구성해보았는데요. 저는 해당 부분을 클릭했을 경우에만 이벤트가 발생되도록 하고 싶습니다.
2) x:Name 설정
다음으로 해당 엘리먼트가 c#코드와 연동되도록 하기 위해 Name을 지정 해줍니다.
//MainWindow.xaml.cs(코드비하인드)
앞서 전체를 기준으로 했을때와 차이가 있다면, xaml에서 Name명으로 지정했던 "button"을 이벤트 앞에 적어주었다는 점입니다.
'c#' 카테고리의 다른 글
[c#] array vs array list (둘의 차이점과 사용시기) (0) | 2022.05.26 |
---|---|
[c#] 2023년 모르면 뒤쳐지는 visual studio 단축키 (2) | 2022.05.25 |
[c#] 다형성(polymorphism) 이란? | 왜 사용하는가? + 오버라이딩 (1) | 2022.05.20 |
[c#] 클래스 상속 | 오버라이딩 3가지 방법 | sealed (0) | 2022.05.20 |
[c#] null값 다루기(nullable type, ?, ??) (0) | 2022.05.19 |
댓글