이번 시간에는 아래와 같이 클릭 버튼을 눌렀을때 특정 텍스트가 아래에 출력되는 방법에 대해 알아보도록 하겠습니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
1) 기본 레이아웃 코드
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 1) 기본 레이아웃 코드 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 1) 기본 레이아웃 코드](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
TextBlock에 두꺼운 줄을 넣기위해 Border로 감싼 형태로 레이아웃을 구성해보았습니다.
2) 클릭 이벤트 추가
(1) 첫번째 방법
//MainWindow.xaml
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
//MainWindow.xaml.cs(코드비하인드)
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
Click 프러퍼티에 Button_Click이라는 이름의 함수를 만듭니다.
자동 완성 기능을 이용해 Tab을 누르면 코드비하인드 단에 자동적으로 함수가 생성되는데요.
대신 body 내용물은 수정해줘야겠지요.
저는 바디부분에 this.textbox.Text ="넣고싶은 내용" 형태로 코드를 수정해주었습니다.
여기서 this.textbox는 x:Name에서 우리가 원하는 임의의 명칭을 넣어주어서 사용가능한것입니다.
(저는 textbox라는 명으로 지었습니다.)
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
그리고 .Text는 TextBlock내에 값을 출력하기 위한 프러퍼티라고 보시면됩니다.
만약 디폴트로 특정 글자가 나오게 하고싶다면, 아래와 같이 미리 세팅하는것도 가능합니다.
여기서도 Text라는 프러퍼티를 사용했죠?
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
이렇게 작성 후 윈도우를 실행하면 애초부터 해당 텍스트가 적혀있는 상태로 출력이 됩니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (1) 첫번째 방법](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
(2) 두번째 방법
이번에는 xaml에서 명시적으로 적혀있는 클릭 이벤트 부분을 아예 지웁니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법](https://blog.kakaocdn.net/dn/Jcha3/btrCS0u2s9f/9MnOxWQyZKTAtbBxv6qF90/img.png)
대신 x:Name에 우리가 원하는 명(여기서는 "button")을 지어주고, 해당 이벤트는 코드비하인드단(c#코드)에서 작성을합니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법](https://blog.kakaocdn.net/dn/bdpZ2j/btrCMXNkCLy/ZKgaY3WYHNoakmDkhhotg1/img.png)
생성자 위치에 아래와 같이 코드를 작성해줍니다.
함수명은 마음대로 적으셔도 되는데요.
(저는 Button_Click2라는 명으로 작성했습니다.)
(+=는 Click이벤트에 해당 버튼 함수를 추가해준다는 뜻입니다.)
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법](https://blog.kakaocdn.net/dn/cPMPx0/btrCS0u2wCj/xa6tOzhPve5MVc3ewpaKi1/img.png)
아직은 함수명만 지었지 함수가 생성이 안되어 있어서 빨간줄이 그어져 있는데요.
아래와 같이 빨간줄에 커서를 대면 메서드 생성이 가능합니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법](https://blog.kakaocdn.net/dn/c5tZeU/btrCS11Lv88/z5wh71Ly33kYrjtrLDmOQK/img.png)
마찬가지로 함수 바디 코드는 1번에서 했던 식으로 그대로 작성해주면 됩니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법 [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 2) 클릭 이벤트 추가 - undefined - (2) 두번째 방법](https://blog.kakaocdn.net/dn/l4RGc/btrCNOCBqew/7j5WPd5i0ZhpiMEYYABfr0/img.png)
3) TextBlock을 Label로 바꾼다면?
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 3) TextBlock을 Label로 바꾼다면? [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 3) TextBlock을 Label로 바꾼다면?](https://blog.kakaocdn.net/dn/0Sri9/btrCPIonTi5/krs5DnVMphvg5HV9rwxnHK/img.png)
만약 우리가 출력하고 싶은 엘리먼트가 TextBlock 이 아닌 Label이라면 코드가 어떻게 달라질까요?
달라지는건 기존에 사용했던 프러퍼티명인 Text가 아닌 Content로 변경해주면 됩니다.
![[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 3) TextBlock을 Label로 바꾼다면? [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 - 3) TextBlock을 Label로 바꾼다면?](https://blog.kakaocdn.net/dn/cqaip1/btrCVdHpKuN/PPSxCAxsmlXmbI3BtvWQ11/img.png)
'c# > wpf' 카테고리의 다른 글
[c# wpf] 새로운 창(윈도우) 여는 법 (0) | 2022.05.24 |
---|---|
[c# wpf] 탭(Tab Control) 사용법 (0) | 2022.05.24 |
[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) (0) | 2022.05.24 |
[c# wpf] 버튼 content에 중괄호(curly braces) 넣기 (0) | 2022.05.23 |
[wpf 기초] App.xaml 기본 구조 이해 (0) | 2022.05.11 |
댓글