![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
이번 포스팅에서는 윈도우 창에 마우스 이벤트(더블클릭 or 오른쪽 클릭 or 왼쪽 클릭)를 날렸을때, 해당 이벤트가 무엇인지 메세지창으로 알려주는 법에 대해 알아보도록 하겠습니다.
1. 여러가지 이벤트
1) 마우스 더블 클릭(Double click)
//MainWindow.xaml
이곳은 그냥 빈화면으로 두겠습니다.
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 1) 마우스 더블 클릭(Double click) [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 1) 마우스 더블 클릭(Double click)](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
/MainWindow.xaml.cs(코드 비하인드)
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 1) 마우스 더블 클릭(Double click) [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 1) 마우스 더블 클릭(Double click)](http://t1.daumcdn.net/tistory_admin/static/images/xBoxReplace_250.png)
여기서 우리가 집중해야할 부분은 더블클릭을 했을 경우 어떤 이벤트를 발생시킬지 결정하는 것입니다.
우리가 앞서 목표한바는 메세지창에 해당 내용이 뜨게하는것이었죠?
그렇기 때문에 MainWindow_MousedoubleClick함수에 관련 코드를 적어줍니다.
추가적으로 MouseDoubleClick 이벤트에 우리가 만든 함수를 연결시켜주는 작업으로 +=을 이용했습니다.
( += 가 낯선 분들은 델리게이트 포스팅을 참조 바랍니다.)
2) 마우스 오른쪽 클릭
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 2) 마우스 오른쪽 클릭 [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 2) 마우스 오른쪽 클릭](https://blog.kakaocdn.net/dn/4Ft0C/btrC3dParHb/B58AVNAViWkcyz0eukaduK/img.png)
더블클릭때와 같은 코드입니다. 차이가 있다면 이벤트가 MouseRightButtonDown 으로 변경 되었다는 것입니다.
3) 마우스 왼쪽 클릭
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 3) 마우스 왼쪽 클릭 [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 1. 여러가지 이벤트 - undefined - 3) 마우스 왼쪽 클릭](https://blog.kakaocdn.net/dn/ltL9N/btrC3eHjZ3t/A4UMplc0x3erKss8eyuST1/img.png)
왼쪽 클릭 코드는 위와 같습니다. 같은 내용임으로 설명은 생략할게요!
지금까지는 윈도우창 전체를 기준으로 아무곳에 클릭해도 이벤트가 발생했다면, 범위를 좁혀 특정 요소를 클릭했을때만 발생시키려면 어떻게 할까요?
2. 특정 요소에만 이벤트 발생시키는법
1) 레이아웃
//MainWindow.xaml
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 2. 특정 요소에만 이벤트 발생시키는법 - undefined - 1) 레이아웃 [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 2. 특정 요소에만 이벤트 발생시키는법 - undefined - 1) 레이아웃](https://blog.kakaocdn.net/dn/EawJm/btrCYijHRyy/Ijo7AUg2buVKsEXS9rGeyK/img.png)
아주 간단한 레이아웃을 구성해보았는데요. 저는 해당 부분을 클릭했을 경우에만 이벤트가 발생되도록 하고 싶습니다.
2) x:Name 설정
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 2. 특정 요소에만 이벤트 발생시키는법 - undefined - 2) x:Name 설정 [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 2. 특정 요소에만 이벤트 발생시키는법 - undefined - 2) x:Name 설정](https://blog.kakaocdn.net/dn/bRkxRj/btrC5LjPt6G/1ZdCzOjkvPzGkYkvZSt6j1/img.png)
다음으로 해당 엘리먼트가 c#코드와 연동되도록 하기 위해 Name을 지정 해줍니다.
//MainWindow.xaml.cs(코드비하인드)
![[c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 2. 특정 요소에만 이벤트 발생시키는법 - undefined - 2) x:Name 설정 [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 - 2. 특정 요소에만 이벤트 발생시키는법 - undefined - 2) x:Name 설정](https://blog.kakaocdn.net/dn/beJ3Vp/btrC4gLnlZa/4NuVW5kBh7Sky3jtS45lpK/img.png)
앞서 전체를 기준으로 했을때와 차이가 있다면, 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 |
댓글
꼬예님의
글이 좋았다면 응원을 보내주세요!
이 글이 도움이 됐다면, 응원 댓글을 써보세요. 블로거에게 지급되는 응원금은 새로운 창작의 큰 힘이 됩니다.
응원 댓글은 만 14세 이상 카카오계정 이용자라면 누구나 편하게 작성, 결제할 수 있습니다.
글 본문, 댓글 목록 등을 통해 응원한 팬과 응원 댓글, 응원금을 강조해 보여줍니다.
응원금은 앱에서는 인앱결제, 웹에서는 카카오페이 및 신용카드로 결제할 수 있습니다.