Windows Presentation Foundation 버전 3.5의 새로운 기능

업데이트: 2007년 11월

이 항목에서는 WPF(Windows Presentation Foundation) 버전 3.0과 3.5의 주요 차이점에 대해 간단하게 설명합니다.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 버전 3.0과의 호환성
  • 응용 프로그램
  • 그래픽
  • 3차원 그래픽
  • 데이터 바인딩
  • 컨트롤
  • 문서
  • 주석
  • 관련 항목

버전 3.0과의 호환성

다음 버전과의 호환성 및 이전 버전과의 호환성

WPF 3.0으로 빌드된 응용 프로그램은 WPF 3.5 런타임에서 실행됩니다.

WPF 3.5로 빌드한 응용 프로그램은 응용 프로그램에 WPF 3.0의 기능만 사용되는 경우 3.0 런타임에서 실행됩니다.

WPF 3.5에서는 새로운 XML 네임스페이스인 https://schemas.microsoft.com/netfx/2007/xaml/presentation을 정의합니다. WPF 3.5를 사용하여 응용 프로그램을 빌드할 때는 이 네임스페이스 또는 WPF 3.0에서 정의된 네임스페이스를 사용할 수 있습니다.

특정 런타임을 대상으로 지정

WPF 3.0으로 빌드된 응용 프로그램은 원래 빌드될 때 대상으로 지정한 버전과 같거나 큰 버전의 모든 프레임워크를 대상으로 할 수 있습니다. 자세한 내용은 방법: 응용 프로그램 구성 파일을 사용한 대상 .NET Framework 버전 지정을 참조하십시오.

응용 프로그램

응용 프로그램 모델이 다음과 같이 향상되었습니다.

  • 독립 실행형 응용 프로그램과 XBAP(XAML 브라우저 응용 프로그램)에서 비시각적 및 시각적 추가 기능을 지원하기 위한 광범위한 추가 기능이 지원됩니다.

  • 이제 Firefox에서 XBAP를 실행할 수 있습니다.

  • 같은 원본 사이트에서 XBAP와 웹 응용 프로그램이 쿠키를 공유할 수 있습니다.

  • 생산성을 높일 수 있는 향상된 XAML IntelliSense 환경을 제공합니다.

  • 지역화 지원이 확장되었습니다.

WPF의 시각적 및 비시각적 추가 기능

확장 가능한 응용 프로그램은 다른 응용 프로그램과 기능을 통합하고 확장할 수 있도록 하는 방식으로 기능을 노출합니다. 응용 프로그램에서 확장성을 노출하는 일반적인 방법 중 하나가 추가 기능입니다. .NET Framework에서 추가 기능은 일반적으로 동적 연결 라이브러리(.dll)로 패키징되는 어셈블리입니다. 추가 기능은 런타임에 호스트 응용 프로그램에 의해 동적으로 로드되어 호스트에서 노출하는 서비스를 사용하고 확장합니다. 호스트와 추가 기능은 일반적으로 호스트 응용 프로그램에서 게시하는 공통 인터페이스인 잘 알려진 계약을 통해 서로 상호 작용합니다.

응용 프로그램에서 추가 기능을 지원하면 자사 및 타사 개발자가 해당 응용 프로그램을 위한 추가 기능을 만들 수 있습니다. 이러한 응용 프로그램 유형의 예로는 Office, Visual Studio 및 Microsoft Windows Media Player를 포함한 여러 가지를 들 수 있습니다. 예를 들어 타사에서는 Microsoft Windows Media Player의 추가 기능 지원을 이용하여 DVD 디코더 및 MP3 인코더를 만들 수 있습니다.

.NET Framework는 응용 프로그램이 추가 기능을 지원할 수 있도록 해주는 빌딩 블록을 구현합니다. 하지만 강력한 추가 기능 디자인의 경우 다음을 처리해야 하므로 이러한 지원을 빌드하는 데 필요한 시간과 복잡성에 수반되는 비용이 높을 수 있습니다.

  • 검색: 호스트 응용 프로그램에서 지원되는 계약을 준수하는 추가 기능 찾기

  • 활성화: 추가 기능 로드, 실행 및 통신 설정

  • 격리: 응용 프로그램 도메인이나 프로세스를 사용하여 추가 기능의 잠재적인 보안 및 실행 문제로부터 응용 프로그램을 보호하는 격리 경계 설정

  • 통신: 추가 기능 및 호스트 응용 프로그램이 메서드를 호출하고 데이터를 전달하여 격리 경계를 넘어 서로 통신할 수 있도록 허용

  • 수명 관리: 명확하고 예측 가능한 방식으로 응용 프로그램 도메인과 프로세스 로드 및 언로드(응용 프로그램 도메인 개요 참조)

  • 버전 관리: 호스트 응용 프로그램과 추가 기능의 새 버전이 만들어진 경우에도 계속 통신할 수 있게 함

.NET Framework에서는 이러한 문제를 개발자가 직접 해결하지 않아도 되도록 System.AddIn 네임스페이스에 위치한 형식 집합을 제공하며 이를 통칭하여 "추가 기능 모델"이라고 합니다. .NET Framework 추가 기능 모델은 위에 나열된 일반적인 추가 기능 동작을 위한 기능을 제공합니다.

하지만 일부 시나리오에서는 추가 기능이 호스트 응용 프로그램 UI와 통합되어 이를 확장해야 할 수 있습니다. WPF에서는 호스트 응용 프로그램의 UI에서 추가 기능이 소유하는 FrameworkElement를 표시함으로써, .NET Framework 추가 기능 모델을 확장하여 이러한 시나리오를 지원합니다. 따라서 WPF 개발자는 다음과 같은 일반적인 시나리오를 지원하는 응용 프로그램을 만들 수 있습니다.

  • 타사의 "버디" 추가 기능을 사용하여 추가적인 서비스를 제공하는 메신저 스타일의 응용 프로그램

  • 타사 게임을 호스팅하도록 설계된 게임 응용 프로그램

  • 광고를 호스팅하는 콘텐츠 읽기 응용 프로그램

  • Windows 세로 막대와 같은 임의의 모듈을 호스팅하는 매시업 응용 프로그램

또한 WPF 추가 기능은 독립 실행형 응용 프로그램과 XBAP 모두에서 호스팅할 수 있습니다.

자세한 내용은 Windows Presentation Foundation 추가 기능 개요를 참조하십시오.

XBAP에 대한 Firefox 지원

WPF 3.5용 플러그 인을 사용하면 XBAP를 Firefox 2.0에서 실행할 수 있습니다. 이 기능은 WPF 3.0에서는 사용할 수 없습니다. 주요 기능에는 다음이 포함됩니다.

  • Firefox 2.0이 기본 브라우저인 경우 XBAP가 구성을 따릅니다. 즉, Firefox 2.0이 기본값이면 XBAP에 Internet Explorer를 사용하지 않습니다.

  • 부분 신뢰 보안 샌드박스를 포함하여 Internet Explorer를 실행하는 XBAP에 사용 가능한 보안 기능을 Firefox 2.0에서 실행되는 XBAP에서도 동일하게 사용할 수 있습니다. 추가적인 브라우저 제공 보안 기능은 브라우저에 한정됩니다.

쿠키

독립 실행형 WPF 응용 프로그램과 XBAP는 세션과 영구 쿠키를 모두 만들고, 가져오고, 삭제할 수 있습니다. WPF 3.5에서는 원본 사이트가 같은 XBAP, 웹 서버 및 HTML 파일에서 영구 쿠키를 공유할 수 있습니다.

쿠키에 대한 자세한 내용은 탐색 개요를 참조하십시오.

Visual Studio IntelliSense 향상

이제 Visual Studio XAML 편집기를 사용하여 새 XAML 요소를 추가하고, 여기에 이름을 지정하고(Name 특성 사용), 코드 숨김에서 이를 참조하고, IntelliSense 탐색기에서 해당 멤버를 볼 수 있습니다.

지역화

WPF 3.5에서는 다음 스크립트에 대한 지원이 추가되었습니다.

  • 벵골어

  • 데바나가리어

  • 구자라트어

  • 굴묵키어

  • 카나다어

  • 말라얄람어

  • 오리야어

  • 타밀어

  • 텔루구어

자세한 내용은 Windows Presentation Foundation 전역화를 참조하십시오.

TextBox에 대한 IME(입력기) 지원

이제 FrameworkTextComposition 클래스는 다음과 같은 속성을 갖습니다.

사용자가 IME와 TextInput을 사용하여 TextBox에 텍스트를 입력할 때 FrameworkTextCompositionTextCompositionEventArgs.TextComposition 속성으로 사용되고 TextInputUpdate 또는 TextInputStart 이벤트가 발생합니다.

그래픽

이제 HTTP를 통해 로컬 Microsoft Internet Explorer 임시 파일 캐시로 다운로드된 이미지를 캐시하여 해당 이미지를 다음에 요청할 때는 인터넷이 아니라 로컬 디스크의 이미지를 사용할 수 있습니다. 이미지의 크기에 따라서는 이와 같은 기능으로 인해 네트워크 성능이 크게 향상될 수 있습니다. 이 기능을 지원하기 위해 다음 멤버가 추가되었습니다.

BitmapSource.DecodeFailed 이벤트는 헤더 손상 때문에 이미지 로드에 실패했을 경우 이를 알리기 위해 추가되었습니다.

3차원 그래픽

3차원 개체 모델에 다음과 같은 새로운 기능이 추가되었습니다.

3차원 입력, 포커스 및 이벤트 지원

이제 3차원 개체 모델은 입력, 포커스 및 이벤트와 같은 UIElement 개념을 지원합니다. 이러한 서비스를 제공하는 새 클래스는 UIElement3D 및 이에 대한 파생 클래스인 ContainerUIElement3DModelUIElement3D입니다. 자세한 내용은 UIElement3D 구 샘플3차원 샘플의 이벤트 처리을 참조하십시오.

3차원의 대화형 2차원 콘텐츠

새로운 클래스인 Viewport2DVisual3D는 대화형 2차원 콘텐츠를 3차원 개체에 배치할 수 있도록 지원합니다. 예제를 보려면 3차원의 대화형 2차원 샘플를 참조하십시오.

새로운 변환 서비스

새로운 클래스인 GeneralTransform3D, GeneralTransform2DTo3DGeneralTransform3DTo2D를 사용하면 Visual3D 개체 간에 변환하거나 2차원에서 3차원으로 또는 그 반대로 변환하는 작업을 수행할 수 있습니다.

데이터 바인딩

데이터 바인딩이 다음과 같이 향상되었습니다.

  • 새로운 디버깅 메커니즘으로 데이터 바인딩 디버깅이 더 쉬워졌습니다.

  • 데이터 모델을 통해 IDataErrorInfo 인터페이스에 대한 지원이 제공되므로 비즈니스 계층에서 유효성 검사를 사용할 수 있습니다. 또한 유효성 검사 모델에서는 이제 적절한 구문을 사용하여 유효성 검사 규칙을 설정할 수 있습니다.

  • 이제 데이터 바인딩 모델이 LINQ와 XLINQ를 지원합니다.

새로운 디버깅 메커니즘

이제 데이터 바인딩을 더 쉽게 디버깅할 수 있습니다. 바인딩 관련 개체에 새로운 연결된 속성 PresentationTraceSources.TraceLevel을 설정하여 특정 바인딩의 상태에 대한 정보를 받을 수 있습니다. PresentationTraceSourcesSystem.Diagnostics 네임스페이스의 정적 클래스입니다.

IDataErrorInfo 지원

이제 데이터 유효성 검사 모델은 비즈니스 개체가 입력의 유효성을 결정할 수 있는 IDataErrorInfo 인터페이스를 지원합니다. 인터페이스는 속성 이름을 받고 문자열을 반환하는 인덱서를 정의합니다. 인덱서에서 반환한 예외를 검사하는 유효성 검사 규칙 DataErrorValidationRule이 추가되었습니다. 예제를 보려면 비즈니스 계층 유효성 검사 샘플을 참조하십시오.

데이터 유효성 검사의 대체 구문

BindingMultiBinding 클래스에 새로운 두 개의 속성인 ValidatesOnExceptions와 ValidatesOnDataErrors가 추가되었습니다. 이 두 속성은 요소 구문에서 ExceptionValidationRule 또는 DataErrorValidationRule을 설정하는 방법 대신 사용할 수 있습니다.

LINQ 및 XLINQ 지원

BindingListCollectionView가 향상되어 BindingList<T> 형식의 컬렉션에 대한 바인딩과 LINQ 지원이 개선되었습니다. IEnumerable을 통한 CollectionView를 사용한 데이터 바인딩 동작도 향상되어 성능이 높아졌으며 LINQ에 의해 생성된 결과에 대한 바인딩을 더욱 효과적으로 지원합니다. LINQ 예제를 보려면 LINQ 쿼리 샘플을 참조하십시오.

또한 데이터 바인딩 모델은 XLINQ에 대한 지원도 제공합니다.

컨트롤

RichTextBox

RichTextBox는 이제 TextElement를 저장할 때와 TextElement가 클립보드 작업에 관련될 때 사용자 지정 TextElement 개체를 유지합니다. 이 동작은 다음의 새 API를 통해 지원됩니다.

RichTextBoxIsDocumentEnabled라는 새 속성이 추가되었습니다. IsDocumentEnabled가 true이면 단추나 하이퍼링크 등의 UI 요소에서 사용자 입력이 허용됩니다.

TextBoxBase

TextBoxBase에 컨트롤이 참조하는 최대 작업 수를 지정하는 UndoLimit라는 속성이 새롭게 추가되었습니다.

SoundPlayerAction

SoundPlayerAction은 이제 상대적 및 절대적 pack URI(Uniform Resource Identifier)로 식별할 수 있는 다음과 같은 오디오 파일을 로드할 수 있습니다.

  • 리소스 파일: Build Action이 Resource인 오디오 파일

  • 콘텐츠 파일: Build Action이 Content인 오디오 파일

  • 원본 사이트 파일: Build Action이 None인 오디오 파일

보호된 Set 접근자

이제 다음 속성의 set 접근자는 내부로 설정되지 않고 보호됩니다.

문서

FlowDocumentPageViewer, FlowDocumentScrollViewerFlowDocumentReader 각각에 Selection이라는 새로운 공용 속성이 추가되었습니다. 속성은 문서에서 선택된 콘텐츠를 나타내는 TextSelection을 가져옵니다.

주석

이제 주석 프레임워크에서 주석을 해당되는 주석 지정된 개체와 연결하는 기능을 노출합니다. 새로운 인터페이스 IAnchorInfo가 추가되었습니다. 또한 IAnchorInfo 개체를 반환하는 새 메서드 GetAnchorInfoAnnotationHelper 클래스에 추가되었습니다.

이렇게 새로 추가된 기능을 통해 주석 개체가 고정되어 있는 개체에 액세스할 수 있게 되었습니다. 예제를 보려면 주석 창이 있는 주석이 추가된 문서 뷰어 샘플을 참조하십시오.

참고 항목

작업

주석 창이 있는 주석이 추가된 문서 뷰어 샘플

개념

.NET Framework 3.5 아키텍처

.NET Framework 버전 3.5의 새로운 기능

3차원 그래픽 개요

데이터 바인딩 개요

주석 개요

참조

SoundPlayerAction

BitmapImage