무효 클릭 IP 추적 중...
c#/wpf

[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법

꼬예 2022. 5. 23.

이번 시간에는 아래와 같이 클릭 버튼을 눌렀을때 특정 텍스트가 아래에 출력되는 방법에 대해 알아보도록 하겠습니다.

 

 

 

1) 기본 레이아웃 코드

 

TextBlock에 두꺼운 줄을 넣기위해 Border로 감싼 형태로 레이아웃을 구성해보았습니다.

 

2) 클릭 이벤트 추가

(1) 첫번째 방법

//MainWindow.xaml

//MainWindow.xaml.cs(코드비하인드)

 

Click 프러퍼티Button_Click이라는 이름의 함수를 만듭니다.

자동 완성 기능을 이용해 Tab을 누르면 코드비하인드 단에 자동적으로 함수가 생성되는데요.

대신 body 내용물은 수정해줘야겠지요.

 

저는 바디부분에 this.textbox.Text ="넣고싶은 내용" 형태로 코드를 수정해주었습니다.

 

여기서 this.textbox는 x:Name에서 우리가 원하는 임의의 명칭을 넣어주어서 사용가능한것입니다.

(저는 textbox라는 명으로 지었습니다.)

 

그리고 .Text는 TextBlock내에 값을 출력하기 위한 프러퍼티라고 보시면됩니다.

 

만약 디폴트로 특정 글자가 나오게 하고싶다면, 아래와 같이 미리 세팅하는것도 가능합니다.

여기서도 Text라는 프러퍼티를 사용했죠?

 

이렇게 작성 후 윈도우를 실행하면 애초부터 해당 텍스트가 적혀있는 상태로 출력이 됩니다.

 

 

(2) 두번째 방법

이번에는 xaml에서 명시적으로 적혀있는 클릭 이벤트 부분을 아예 지웁니다.

 

대신 x:Name에 우리가 원하는 명(여기서는 "button")을 지어주고, 해당 이벤트는 코드비하인드단(c#코드)에서 작성을합니다.

 

생성자 위치에 아래와 같이 코드를 작성해줍니다.

함수명은 마음대로 적으셔도 되는데요.

(저는 Button_Click2라는 명으로 작성했습니다.)

(+=는 Click이벤트에 해당 버튼 함수를 추가해준다는 뜻입니다.)

 

 

아직은 함수명만 지었지 함수가 생성이 안되어 있어서 빨간줄이 그어져 있는데요.

아래와 같이 빨간줄에 커서를 대면 메서드 생성이 가능합니다.

 

마찬가지로 함수 바디 코드는 1번에서 했던 식으로 그대로 작성해주면 됩니다.

 

3) TextBlock을 Label로 바꾼다면?

만약 우리가 출력하고 싶은 엘리먼트가 TextBlock 이 아닌 Label이라면 코드가 어떻게 달라질까요?

 

달라지는건 기존에 사용했던 프러퍼티명인 Text가 아닌 Content로 변경해주면 됩니다.

  • 트위터 공유하기
  • 페이스북 공유하기
  • 카카오톡 공유하기
이 컨텐츠가 마음에 드셨다면 커피 한잔(후원) ☕

댓글