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
사용자 삽입 이미지

인터넷 브라우저나 문서 편집 등에 주로 사용되는 탭브라우징에서 새로운 탭을 추가하는 예제입니다. TabControl과 TabItem을 사용했어요.
Posted by 데모집팀 황리건
사용자 삽입 이미지


WPF 3.5 SP1에서는 WebBrowser 컨트롤을 제공합니다. 이 컨트롤을 이용한 간단한 예제입니다. WebBrowser 컨트롤 사용법은 여기를 참고

단, 예제에서 주소 입력창에 http://를 빼고 입력하면 오류가 납니다. Uri에서 에러 발생하는 것 같은데, http:// 가 없을 시에(indexOf로 체크) 자동으로 추가시켜 주는 처리를 넣으면 간단히 해결되겠죠?

몇가지 부가기능 처리는 좀 더 추가해서 업데이트 해보죠.

Posted by 데모집팀 황리건
사용자 삽입 이미지


플래시에서는 OnFocus로 하는데, WPF에서는 GotMouseCapture 이벤트에서 텍스트 오브젝트의 SelectAll()를 실행하면 됩니다. 간단한 거지만, 어떤 이벤트인지 몰라서 한참 해맸네요. 끙.

        private void myTextBox_GotMouseCapture(object sender, MouseEventArgs e)
        {
            myTextBox.SelectAll();
        }

Posted by 데모집팀 황리건
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 데모집팀 황리건
사용자 삽입 이미지

WPF로 만드는 3D 그래픽 예제. WPF에서 모든 3차원 그래픽 요소는 Viewport3D에 들어가요. VS2008에서 입력한 좌표가 들어있는 프로젝트를 블렌드에서 가져오면 위와 같이 변형할 수 있는 기능을 제공한답니다. WPF 3D 상당히 재미있네요.

Posted by 데모집팀 황리건

사용자 삽입 이미지
가젯 스타일로 화면에 떠다니는 형태의 응용프로그램 창을 만드는 소스입니다. WPF에서 만드는 거 정말 쉽네요. +_+
Posted by 데모집팀 황리건
사용자 삽입 이미지

비스타 스타일의 반투명 창(AERO)을 만드는 예제입니다. GlassHelper라는 사용자 정의 클래스를 사용하였고. Thickness를 조정하면 투명영역의 크기를 변경할 수 있어요. new Thickness(0,0,0,300) 과 같이 한다면 아래 쪽만 투명도를 줄 수도 있죠.
Posted by 데모집팀 황리건

메시지 박스 테스트

WPF 2008/04/13 14:58

WPF에서 메시지 박스 출력하는 법.
Posted by 데모집팀 황리건