WinForm과 WPF의 차이

WPF 2009/02/09 12:54

WinForm의 경우는 앞단에 cs파일이 있고, UI를 구성하는 디자이너 cs 파일이 있지만...




WPF는 마크업 언어인 XAML이 있고, 이를 뒷받침하는 로직으로 구성된 비하인드 코드가 있다.

마크업은 계층 구조를 명확하게 보여주기 때문에 가독성이 좋고 직관적이며, 컴파일 방식이 아닌 파싱 방식이기 때문에 동적으로 변경이 가능하여 유연 구조를 가진다. 또한, XML 기반이기 때문에 개방적이고 처리하기가 쉽다.

개념적인 차이로는 WinForm이 개발자-디자이너의 작업 흐름에 맞추어져 있는 반면, WPF는 디자이너-개발자 작업 흐름에 따른다.

Posted by 데모집팀 황리건
TAG CS, WinForm, WPF, XAML



블렌드에서 레이아웃 잡고, 비주얼 스튜디오에서 C# 코딩...

learning...
XAML 제작을 할 때 UI 개발자 또는 블렌드의 역할 중요하다는 점 재확인.
Posted by 데모집팀 황리건
TAG c#, WPF, XAML
Window는 App.xaml에서 불러들이는 윈도 애플리케이션의 메인 클래스이다.

만약, 웹페이지처럼 화면이 전환되는 형태의 애플리케이션을 만들고 싶다면, NavigationWindow 클래스를 사용해야 한다. NavigationWIndow 클래스는 서로 다른 내용을 가진 xaml(또는 html)을 수시로 전환할 수 있도록 도와준다.

NavigationWindow 클래스는 기본적으로 Window 클래스를 상속하고 있으며, Window와는 달리 Source 라는 속성을 가지고 있어서 여기에 다른 xaml을 설정할 수 있다.
사용자 삽입 이미지

[설정 방법]
Window 대신 NavigationWindow를 사용한다면, WIndow1.xaml에서 Window 태그 대신에 NavigationWindow로, Window1.xaml.cs 파일에서 Window 클래스 대신에 NavigationWindow로 바꾸어 주면 된다.

[네비게이션 UI 숨기기]
NavigationWindow는 기본적으로 웹브라우저의 '앞으로','뒤로'와 같은 UI를 제공하는데, 아래 속성을 설정하면 이를 안 보이게 할 수 있다.

ShowsNavigationUI="False"
[다른 페이지로 연결]

TextBlock 안에서 하이퍼링크로 연결하는 경우,
<Hyperlink NavigateUri="xaml 파일 주소">이름</Hyperlink>
태그로 간단히 연결할 수 있다.

버튼의 Click 등에 이벤트 핸들러로 연결할 경우에는 아래 처럼 이동시킬 수 있다.
NavigationService.Navigate(New Uri("xaml 주소", UriKind...));
* HTML 페이지를 연결할 경우 NavigationWindow 안에서 웹브라우저처럼 html을 보여준다.


Posted by 데모집팀 황리건