페이지(page)란 창을 새롭게 띄우는게 아니라 기존 윈도우안에서 내용물만 바꾸는거라고 볼 수 있습니다.
아래처럼 버튼을 누르면 페이지가 바뀌는 효과를 보실 수 있죠? 이런게 페이지가 변경 되는 모습입니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?)](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
지금부터 차근 차근 페이지를 만드는 방법에 대해서 알아볼게요!
1. 페이지 생성
우리 포스팅에서는 페이지를 2개 만들어보겠습니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 1. 페이지 생성 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 1. 페이지 생성](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 1. 페이지 생성 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 1. 페이지 생성](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
같은 방식으로 Page2.xaml도 만들어 아래와 같이 두개의 파일을 생성합니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 1. 페이지 생성 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 1. 페이지 생성](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
2. 페이지 내용 수정
1) Page 파일의 code-behind단은 기본 디폴트 상태로 둡니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 2. 페이지 내용 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 2. 페이지 내용 수정](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
2) 각각의 페이지에 xaml 단을 수정해줍니다.
//Page1.xaml
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 2. 페이지 내용 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 2. 페이지 내용 수정](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
//Page2.xaml
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 2. 페이지 내용 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 2. 페이지 내용 수정](https://blog.kakaocdn.net/dn/cpSd7I/btrCXkAX4xt/9mykYV7t3ARQKUynCK9h90/img.png)
3. 메인 window 수정
//MainWindow.xaml
1) 기본 레이아웃
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정](https://blog.kakaocdn.net/dn/bg6wk3/btrCYuC6q1L/veFgFY5PGQISzNZ0mh5xi0/img.png)
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정](https://blog.kakaocdn.net/dn/4oHjM/btrCZREzXxg/Gj7TXwZVUoP7e4Gpmzag50/img.png)
각 페이지에 접속할 버튼 2개와 버튼에 붙힐 클릭 이벤트를 추가합니다.
2) 메인window에서 페이지 띄울 위치 정하기
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정](https://blog.kakaocdn.net/dn/lOBp6/btrC0NaRdgp/WlKoT4Z2yt5TpxqBzxH9k1/img.png)
빨간색 사각형 부분에 페이지가 위치하도록 하고 싶습니다.
이때 우리는 Frame이라는 낯선 엘리먼트를 사용하게 되는데요.
이 엘리먼트를 통해서 페이지가 출력되는 것입니다.
해당 엘리먼트의 위치는 버튼 아래 쪽에 위치할 것임으로 아래와 같이 작성해주고,
code-behind단에서 해당 Frame에 접근하기 위한 x:Name도 추가해줍니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정](https://blog.kakaocdn.net/dn/cnNUeP/btrCXSxrkgU/EE7OLVXH7CjzKQoH009Yc1/img.png)
//MainWindow.xaml.cs
Frame이름.Content 프러퍼티에 우리가 앞서 정의했던 페이지들을 연결 시켜주는데요.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 3. 메인 window 수정](https://blog.kakaocdn.net/dn/oyyup/btrCY1AhuYT/jNRsRXJSxKa55Aytk4W5hk/img.png)
이때 각 페이지의 클래스를 객체화한것을 .Content에 할당했다는것을 집중하시기 바랍니다!
4. 추가적인 UI 수정
여기까지 코드를 작성하고 앱을 실행시켜보면, 아래와 같이 뒤로가기 버튼이 있는 지저분한 UI가 만들어집니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 4. 추가적인 UI 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 4. 추가적인 UI 수정](https://blog.kakaocdn.net/dn/bCXqS3/btrCZTI9HgZ/akIeTp3OxokEHk8foDMeDK/img.webp)
이를 없애주기 위해서는
//MainWindow.xaml
NavigationUIVisibility=”Hidden”을 추가하여 해당 부분을 뜨지 않게 해주어야 합니다.
![[c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 4. 추가적인 UI 수정 [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) - 4. 추가적인 UI 수정](https://blog.kakaocdn.net/dn/V7Ojg/btrCZSwKcNQ/tQrdRygPkhbKaTK3tRTbH1/img.png)
이 글과 읽으면 좋은글
'c# > wpf' 카테고리의 다른 글
[c# wpf] 새로운 창(윈도우) 여는 법 (0) | 2022.05.24 |
---|---|
[c# wpf] 탭(Tab Control) 사용법 (0) | 2022.05.24 |
[c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 (0) | 2022.05.23 |
[c# wpf] 버튼 content에 중괄호(curly braces) 넣기 (0) | 2022.05.23 |
[wpf 기초] App.xaml 기본 구조 이해 (0) | 2022.05.11 |
댓글