초보자를 위한 WPF 튜토리얼: 애플리케이션 생성 방법 [예제]
WPF란 무엇입니까?
WPF 구축을 위한 프레임워크이다. Windows 사용자가 코드 복잡성을 낮추고 3D 애니메이션과 풍부한 색상을 갖춘 풍부한 사용자 인터페이스를 개발할 수 있는 애플리케이션입니다. 최신 그래픽 카드의 하드웨어 가속을 사용하는 벡터 기반 렌더링 엔진으로, Ul을 더 빠르고 확장성이 뛰어납니다. WPF는 다음을 의미합니다. Windows 발표자: Foundation.
WPF는 WinForms에 대한 진화로 간주될 수 있습니다. 작동하기 쉬운 그래픽 디스플레이 시스템을 생성합니다. Windows. UI와 비즈니스 로직을 쉽게 분리할 수 있습니다.
WPF 애플리케이션은 독립 실행형 데스크톱 프로그램으로 시스템에 배포하거나 웹사이트에 내장된 개체로 호스팅할 수 있습니다.
왜 WPF인가?
WPF 플랫폼을 사용하는 데는 여러 가지 이유가 있습니다. 그 중 대표적인 이유는 다음과 같습니다.
- 다양한 미디어 유형을 처리해야 하는 경우 사용하기에 이상적인 플랫폼
- WPF를 사용하면 스킨이 적용된 사용자 인터페이스를 만들 수 있습니다. 또한 UI의 일부를 로드해야 하거나 XML 데이터를 바인딩하려는 경우에도 도움이 됩니다.
- 이를 통해 구축된 대규모 .NET 클래스 라이브러리의 이점을 활용할 수 있습니다. .NET 기술
- 해상도 독립성으로 WMF를 사용하여 개발된 응용 프로그램을 모바일 장치나 20인치 모니터에서 실행할 수 있습니다.
- WPF는 WinAPI 대신 DirectX를 기반으로 구축됩니다. 클라이언트 컴퓨터의 그래픽 시스템을 제공합니다. 따라서 더 큰 그래픽 렌더링 성능을 제공합니다.
- 레이아웃의 "데스크탑 출판" 품질을 가능하게 하는 유동 문서 모델을 지원합니다.
- 외모와 행동은 느슨하게 결합되어 있습니다. 이를 통해 디자이너와 개발자는 두 가지 별도의 모델을 작업할 수 있습니다.
- WMF 프레임워크에서는 코드를 구문 분석하는 대신 간단한 XML 문서에 대한 도구를 그래픽으로 디자인할 수 있습니다.
- GUI를 그리기 위해 하드웨어 가속을 사용하여 더 나은 성능을 얻을 수 있습니다.
WPF의 역사
Windows 1.0은 최초의 GUI 환경이었습니다. Microsoft. 그래픽 및 사용자 인터페이스를 위해 GDI 및 USER 시스템을 사용하여 DOS 위에 계층으로 작동합니다.
DirectX는 고성능 그래픽 시스템으로 1995년에 출시되었습니다. 게임 및 기타 그래픽 관련 환경을 겨냥했습니다. 수년에 걸쳐 mange.Net 코드와 함께 사용할 라이브러리를 제공하는 Directx9와 함께 많은 버전이 출시되었습니다.
WPF 버전 | 출시 연도 | .Net 버전 | Visual Studio 버전 | 기능 |
---|---|---|---|---|
3.0 | 2006 | 3.0 | 해당 사항 없음 | 초판. 그러나 WPF 개발은 VS 2005를 사용하여 수행할 수 있습니다. |
3.5 | 2007 | 3.5 | VS2008 | 수정 및 개선 사항: 애플리케이션 모델, 바인딩, 컨트롤, 문서, 주석 및 3D Ul 요소. |
3.5 SP1 | 2008 | 3.5 SP1 | 해당 사항 없음 | 기본 스플래시 화면 지원. 새로운 웹 브라우저 컨트롤, DirectX 픽셀 셰이더 지원. |
4.0 | 2010 | 4.0 | VS2010 | 새로운 컨트롤: 달력. DataGrid, DatePicker. 멀티터치 및 조작 |
4.5 | 2012 | 4.5 | VS2012 | 비트맵 효과의 설정 시간이 빨라지고 성능이 향상되었습니다. 새로운 컨트롤: 달력. DataGrid, DatePicker. 멀티터치 및 조작 |
4.5.1 | 2013 | 4.5.1 | VS2013 | 새로운 리본 컨트롤 새로운 INotifyDataErrorInfo 인터페이스 |
4.5.2 | 2014 | 4.5.2 | NA | 큰 변화 없음 큰 변화 없음 |
4.6 | 2015 | 4.6 | VS2015 | 투명한 하위 창 지원 HDPI 및 터치 개선 |
5.0.6년 2021월에 출시된 WPF XNUMX의 최신 안정 버전입니다.
WPF의 특징
- 문서 및 인쇄
- 보안, 접근성 및 현지화
- 상호 운용성을 제공합니다 Windows 양식 컨트롤
- Direct3D는 성능이 중요한 그래픽 응용 프로그램에 사용됩니다.
- 렌더링을 위해 비디오 카드 하드웨어를 사용합니다.
- 벡터 기반 그래픽을 사용하면 품질 저하 없이 애플리케이션을 확장할 수 있습니다.
- WPF는 부동 소수점 논리 픽셀 시스템과 32비트 ARGB 색상을 지원합니다.
- 스타일 및 컨트롤 템플릿 재정의
- 합성 글꼴에서 국제 글꼴 만들기
- WPF 텍스트 렌더링은 ClearType 기술을 활용하는 데 도움이 됩니다.
- 비디오 메모리에서 사전 렌더링된 텍스트의 캐싱 기술을 사용할 수 있습니다.
- 모든 제어에 대한 리소스 기반 접근 방식
- 프레젠테이션 타이머는 WPF에 의해 초기화 및 관리됩니다.
- 영상과 애니메이션의 관계도 지원됩니다
- WPF에서 스타일은 시각적 렌더링에 사용되는 콘텐츠에 적용되어야 하는 속성 집합입니다.
- WPF의 템플릿은 문서의 Ul을 변경하는 데 도움이 됩니다.
- 명령은 보다 추상적이고 느슨하게 결합된 이벤트 버전입니다.
- 명령에 대한 WPF 지원으로 작성해야 하는 코드의 양이 줄어듭니다.
이 WPF의 다음 C# 튜토리얼, WPF 핵심 유형 및 인프라에 대해 알아봅니다.
WPF 핵심 유형 및 인프라
WPF의 클래스는 네 가지 유형으로 나뉩니다.
- UI요소
- 프레임워크 요소
- 콘텐츠요소
- 프레임워크콘텐츠요소
이러한 클래스는 기본 요소 클래스로 알려져 있습니다. 이는 사용자 인터페이스를 구성하는 모델의 기초를 제공합니다.
WPF 사용자 인터페이스는 트리 계층 구조로 결합된 요소로 구성됩니다. 이를 요소 트리라고 합니다. 요소 트리는 사용자 인터페이스를 레이아웃하는 직관적인 방법입니다. 강력한 UI 서비스의 기능을 얻을 수 있는 구조입니다.
XAML
"XAML" 또는 "zammel"이라고 하는 확장 가능한 응용 프로그램 마크업 언어는 사용자 인터페이스를 정의하는 선언적 방법입니다.
다음은 간단한 단추에 대한 XAML 정의입니다.
<Button FontSize="16" HorizontalAlignment="Center" VerticalAlignment="Center" > Say Hello Guru99</Button>
XAML 언어 사용의 이점:
- 백엔드 논리에서 프런트엔드 모양을 분리하는 XAML
- XAML은 사용자 인터페이스를 나타내는 가장 쉬운 방법입니다.
- XAML은 도구를 사용하여 효과적으로 작동합니다.
Controls
WPF 프레임워크는 다음과 같은 많은 유용한 컨트롤을 지원합니다.
- 텍스트와 같은 편집 컨트롤Box, 확인하다Box, 라디오 버튼
- 목록과 같은 목록 컨트롤Box, 리스트뷰, 트리뷰
- Label, WPF ProgressBar, ToolTip 등의 사용자 정보
- 메뉴, 버튼, 툴바 등의 액션
- Border, WPF Image, Viewbox와 같은 모양
- OpenFileDialog, PrintDialog와 같은 일반적인 대화 상자.
- TabContro, ScrollBar 및 Group과 같은 컨테이너Box
- DocPanel, StackPanel 및 Grid와 같은 레이아웃
- 프레임, 하이퍼링크 등 탐색
프로그래밍 없이 스타일과 템플릿을 사용하여 컨트롤의 모양을 사용자 정의할 수 있습니다. 적절한 기본 클래스에서 새 클래스를 파생시켜 사용자 지정 컨트롤을 만들 수도 있습니다.
외관
WPF는 애플리케이션의 모양을 사용자 정의하는 기능을 제공합니다. 글꼴, 배경 등과 같은 항목과 값을 설정할 수 있습니다.
스타일 기능을 사용하면 전체 제품의 특정 모양을 표준화할 수 있습니다. 기본 동작을 유지하면서 기본 모양을 바꿀 수 있습니다.
데이터 템플릿을 사용하면 바인딩된 데이터의 기본 시각화를 제어할 수 있습니다. 테마의 도움으로 운영 체제에서 스타일을 쉽게 시각화할 수 있습니다.
레이아웃 및 패널
레이아웃은 적절한 위치 지정 및 크기 제어에 도움이 됩니다. 이는 사용자를 위한 프레젠테이션을 구성하는 프로세스의 일부입니다. WPF 프레임워크는 레이아웃 프로세스를 용이하게 하고 UI 모양의 적응성을 향상시킵니다.
레이아웃 인프라는 1) StackPanel 2)DockPanel 3) WrapPanel 4) Grid 및 5) 다양한 클래스로 제공됩니다. Canvas
그래픽 업로드
WPF는 다음과 같은 향상된 그래픽 시스템을 제공합니다.
- WPF는 장치 독립적인 단위를 사용하여 해상도와 장치 독립성을 가능하게 합니다. 따라서 장치 독립적인 각 픽셀은 인치당 도트 수 설정 시스템을 통해 자동으로 크기가 조정됩니다.
- WPF는 float 대신 double을 사용하고 더 다양한 색상을 지원합니다.
- WPF 그래픽 엔진은 사용 가능한 경우 그래픽 하드웨어를 활용할 수 있도록 설계되었습니다.
문서 및 인쇄
WPF 프레임워크는 세 가지 유형의 문서를 제공합니다.
- 고정 문서: 이 유형의 문서는 WY를 지원합니다.SIWYG 발표.
- 유동 문서: 창 크기 및 장치 해상도와 같은 런타임 변수를 기반으로 콘텐츠를 조정하고 리플로우할 수 있습니다.
- XPS 문서: XML 기반 형식의 전자 문서의 페이지화된 표현입니다. XPS는 오픈 소스 및 크로스 플랫폼 문서 형식입니다.
WPF를 사용하면 인쇄 시스템을 더 효과적으로 제어할 수 있습니다. 여기에는 원격 인쇄 및 대기열이 포함됩니다. 또한 XPS 문서는 인쇄 형식으로 변환하지 않고 직접 인쇄할 수 있습니다.
WPF Archi강의
WPF는 .NET 프레임워크의 일부입니다. 관리되는 코드와 관리되지 않는 코드를 모두 포함합니다. WPF 아키텍처의 중요한 구성 요소는 아래 그림에서 설명합니다.
WPF 아키텍처의 구성 요소
- PresentationFramework: 컨트롤, 스타일, 레이아웃, 창 등의 최상위 요소를 만드는 데 도움이 됩니다.
- PresentationCore: 모든 컨트롤의 UIElement, Visual과 같은 기본 유형을 보유하며 모양은 PresentationFramework.dll에서 파생됩니다.
- CLR: 다음과 같은 기능을 제공하여 개발 프로세스를 생산적으로 만듭니다. 메모리 관리, 오류 처리 등
- 밀코어: Milcore는 DirectX와의 긴밀한 통합을 제공하는 비관리 코드의 일부입니다.
- 다이렉트 X : WPF의 그래픽 렌더링을 허용하는 저수준 API입니다. DirectX 대화는 드라이버와 상호 작용하고 콘텐츠를 렌더링합니다.
- 사용자32: 많은 프로그램에서 널리 사용되는 핵심 API입니다. 메모리와 프로세스 분리를 관리합니다. User32는 어떤 요소가 화면의 어디에 배치될지 결정하는 데 도움을 줍니다.
- 커널 : 입력은 커널 모드 장치 드라이버의 신호로 시작되어 올바른 프로세스로 라우팅되고 다음과 연결됩니다. Windows 커널과 User32.
WPF 설치
WPF를 설치하려면 이 링크를 참조하세요. https://www.guru99.com/download-install-visual-studio.html
다음으로 이 WPF 애플리케이션 튜토리얼에서는 첫 번째 WPF를 구축해 보겠습니다.
첫 번째 WPF 애플리케이션을 만드는 방법은 무엇입니까?
이 WPF 예제에서는 기본 WPF 애플리케이션을 개발합니다. 따라서 아래 WPF 애플리케이션 예제에 제공된 단계를 따라 간단한 구현을 시작해 보겠습니다.
단계 1) Visual Studio에서 파일 > 프로젝트로 이동합니다.
단계 2) 새 프로젝트 창에서
- WPF 앱 선택
- 이름을 "MyWPF"로 입력하세요.
- 확인을 클릭하십시오.
단계 3) Visual Studio는 기본적으로 두 개의 파일을 생성합니다.
- XAML 파일(MainWindow.xaml)
- CS 파일(MainWindow.xaml.cs)
MainWindow.xaml에는
- 디자인 창
- XAML 파일
XAML 창에서 다음 태그는 기본값으로 작성됩니다.
그리드는 기본적으로 첫 번째 요소입니다.
MainWindow.xaml.cs에는 XAML 디자인 파일 뒤에 있는 해당 코드가 포함되어 있습니다.
단계 4) 도구 상자에서,
- 텍스트 드래그Box 디자인 창의 요소
- 텍스트Box 디자인 창에 나타납니다
- 텍스트에 대한 XAML 코드가 표시됩니다.Box 추가
단계 5) 텍스트를 "첫 번째 WPF 프로그램"으로 변경합니다.
단계 6) 시작 버튼을 클릭하십시오.
단계 7) 출력에 창이 표시됩니다.
축하해요! 첫 번째 WPF 애플리케이션을 디자인하고 만들었습니다. 다음으로 초보자를 위한 WPF 튜토리얼에서는 WPF와 WinForms의 차이점을 살펴보겠습니다.
WPF 대 WinForms
WPF | WinForms |
---|---|
이는 최신 프레임워크이므로 현재 표준에 더 잘 맞습니다. | 오래되었기 때문에 더 많은 시도와 테스트를 거쳤습니다. |
유연하고 기능이 풍부합니다. 코딩하거나 컨트롤을 구매하지 않고도 매우 풍부한 애플리케이션을 디자인할 수 있습니다. | 기능이 풍부하지 않음 |
3명의 개발자rd 파티 컨트롤은 미래의 WPF와의 호환성에 중점을 두고 있습니다. | 무료로 구매하거나 얻을 수 있는 타사 컨트롤이 많이 있습니다. |
XAML을 사용하면 GUI를 쉽게 만들고 편집할 수 있습니다. 이를 통해 디자이너(XAML)와 프로그래머(C#, ASP.net 등) 간에 작업을 분할할 수 있습니다. | In Windows 작성된 모든 코드를 한곳에서 구성합니다. |
WPF는 두 가지 모두에 대한 사용자 인터페이스를 만들 수 있습니다. Windows Silverlight 및 XBAP와 같은 응용 프로그램 및 웹 응용 프로그램. | 그런 지원은 없어요 |
WPF의 기본 제공 컨트롤 모음은 제한적입니다. | 인박스 컨트롤은 매우 강력합니다 |
WPF로 구축된 애플리케이션 유형
- WPF는 웹 폼과 윈도우 폼을 대체하려고 합니다. 앱은 브라우저나 독립 실행형 창에서 실행되도록 빌드될 수 있습니다.
- Windows 양식과 WPF 페이지는 동일한 애플리케이션에 공존할 수 있습니다.
- 페이지/창 애플리케이션을 개발할 수 있습니다.
빠른 설명
- WPF 전체 형식은 다음과 같습니다. Windows 발표자: Foundation
- 다양한 미디어 유형을 처리해야 하는 경우 사용하기에 이상적인 플랫폼입니다.
- Windows 1.0은 최초의 GUI 환경이었습니다. Microsoft DOS에서 작업하고 GDI 및 USER 시스템에 의존했습니다.
- .NET의 WPF는 상호 운용성을 제공합니다. Windows 양식 컨트롤
- WPF는 UIElement, FrameworkElement ContentElement 및 FrameworkContentElement와 같은 네 가지 유형으로 나뉩니다.
- WPF 아키텍처의 가장 중요한 구성 요소는 PresentationFramework, PresentationCore, CLR, Milcore, DirectX, User32 및 Kernel입니다.
- WPF는 WinForms보다 최신 프레임워크이므로 현재 표준에 더 부합합니다.
- Windows 양식과 WPF 페이지는 동일한 애플리케이션에 공존할 수 있습니다.