>  기사  >  wpf와 winform의 차이점

wpf와 winform의 차이점

(*-*)浩
(*-*)浩원래의
2019-06-14 11:55:2943018검색

WinForm은 ·Net 개발 플랫폼의 Windows Form을 가리키는 이름입니다.

WPF(Windows Presentation Foundation)는 Microsoft에서 출시한 Windows 기반 사용자 인터페이스 프레임워크이며 .NET Framework 3.0의 일부입니다. 이는 인터페이스 디자이너와 개발자의 작업을 완전히 분리하는 통합 프로그래밍 모델, 언어 및 프레임워크를 제공하는 동시에 새로운 멀티미디어 대화형 사용자 그래픽 인터페이스를 제공합니다. winform을 대체하기 위해 Microsoft에서 출시한 제품으로 인터페이스 디자이너와 개발자의 작업을 분리하고 멀티미디어 대화형 사용자 그래픽 인터페이스를 제공할 수 있습니다. 세 가지 핵심 어셈블리 세트는 PresentationCore, PresentationFramework, windowsBase

wpf와 winform의 차이점

WPF 및 winform입니다. 차이점은 WPF의 하위 레이어는 DirectX를 사용하고, winform의 하위 레이어는 GDI+를 사용하므로 WPF의 그래픽 인터페이스가 더 좋습니다

(권장 학습: PHP 비디오 튜토리얼)

GDI+( 그래픽 장치 인터페이스) 그래픽 장치 인터페이스, 주요 작업은 그리기 프로그램 간의 정보 교환 및 처리, 모든 Windows 프로그램의 그래픽 출력, DirectX(Direct Extension) 멀티미디어 프로그래밍 인터페이스 및 3D 향상을 담당하는 것입니다. 그래픽 및 사운드 효과는 많은 API로 구성됩니다. 성격에 따라 디스플레이 부분, 사운드 부분, 입력 부분, 네트워크 부분으로 나눌 수 있습니다.WinForm 프로그램을 개발할 때 가장 문제가 되는 문제 중 하나는 작업자 스레드가 컨트롤의 속성을 수정하여 프로그램이 오류를 일으키는 것입니다. 충돌이 발생하며 이러한 종류의 불법 작업이 매번 실패하는 것은 아닙니다. WinForm 컨트롤은 현재 스레드가 컨트롤 생성 스레드인지 여부를 확인하기 위해 InvokeRequired 속성을 제공합니다. 문제는 컨트롤 트리가 매우 깊어지면 이 속성이 느려진다는 것입니다.

WPF가 설계되기 시작하면서 멀티스레딩이 고려되었습니다. 대부분의 WPF 클래스는 DispatcherObject에서 상속됩니다. DispatcherObject는 실제로 Dispatcher를 간단히 캡슐화한 것입니다. Dispatcher는 InvokeRequired와 유사한 메서드(CheckAccess)를 제공합니다. 이 방법은 스레드 ID만 비교하므로 속도가 빠릅니다. 또한 Dispatcher는 우선 순위 대기열, 비동기 호출, 타이머 및 기타 기능을 제공하여 멀티 스레드 GUI 프로그램 개발을 단순화합니다.

컨트롤 구성

WinForm에서 체크박스가 포함된 드롭다운 메뉴를 구현하려면 복잡한 Window 메시지를 처리해야 합니다. WPF 컨트롤의 콘텐츠 모델 및 레이아웃 시스템을 통해 WPF 컨트롤에는 .Net CLR 개체를 비롯한 모든 유형의 컨트롤이 포함될 수 있습니다. 많은 최신 컨트롤 제조업체도 컴포지션 컨트롤을 제공하며 구현 방법은 WPF의 콘텐츠 모델과 유사합니다. WPF 개발 팀은 Infragistics의 아이디어를 많이 빌려왔어야 했습니다. 이러한 기반을 바탕으로 새로운 WPF 컨트롤을 개발하는 것이 더 쉬워졌습니다.

XAML

개인적으로 XAML은 WPF에서 획기적인 기술이 되어야 한다고 생각합니다. XAML을 통해 복잡한 개체 그래프를 텍스트로 설명할 수 있습니다. 이 아이디어는 VB에 이미 존재하지만 XAML을 생성하는 데 도구를 사용할 수 있도록 XAML이 단순화되었습니다. 명령 및 라우팅 이벤트와 같은 메커니즘을 통해 인터페이스 디자이너와 프로그래머는 상대적으로 명확한 경계를 갖게 됩니다.

PHP 관련 기술 기사를 더 보려면

PHP 그래픽 튜토리얼

칼럼을 방문하여 알아보세요!

위 내용은 wpf와 winform의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.