다음을 통해 공유


Visual Studio 2010의 확장성 변경 내용

WPF Designer for Visual Studio에서는 WPF 및 Silverlight 컨트롤에 대한 사용자 지정 디자인 환경을 구현하기 위한 정교한 플랫폼을 제공합니다. WPF Designer 확장성 API는 Visual Studio 2008에서 처음 릴리스된 이후 현저하게 향상되었습니다. 다음 단원에서는 Visual Studio 2010용 WPF Designer 확장성의 변경 내용에 대해 설명합니다.

Silverlight 및 다중 플랫폼 버전 지원

Visual Studio 2008에서는 최신 WPF 플랫폼 버전만 컨트롤 디자인 타임의 대상으로 지정할 수 있었습니다. Visual Studio 2010에서는 이 지원이 WPF 3.5, WPF 4, Silverlight 3 및 후속 플랫폼 릴리스를 포함한 다중 플랫폼으로 확장되었습니다. 이러한 모든 플랫폼에 동일한 확장성 API가 있으므로 컨트롤 디자인 타임 작성자는 쉽게 하나의 환경을 작성한 후 각 플랫폼의 컨트롤 런타임에서 공유할 수 있습니다.

Expression Blend의 지원

Visual Studio에서 사용할 수 있는 동일한 확장성 인터페이스를 사용하여 컨트롤 디자인 타임 구현에서 Expression Blend를 대상으로 지정할 수 있습니다. 두 작성 환경에 대해 별개의 또는 공통 디자인 타임 환경을 제공할지를 결정할 수 있습니다.

메타데이터 등록

확장성 API의 가장 중요한 변경 내용은 IRegisterMetadata 인터페이스가 IProvideAttributeTable 인터페이스로 대체되었다는 것입니다. 다중 플랫폼 지원과 더불어 이 변경 내용은 확장성 API의 획기적인 변화를 이끌었습니다. 이는 기존 Visual Studio 2008용 컨트롤 디자인 타임 구현이 Visual Studio 2010에서 로드되지 않는다는 것을 의미합니다.

또한 Visual Studio 2010에서는 ProvideMetadataAttribute 특성을 사용하여 디자인 타임 어셈블리가 메타데이터를 디자이너에게 제공함을 나타냅니다.

새 확장 지점

또한 새 확장성 API는 다음을 포함한 새로운 디자인 타임 환경을 지원합니다.

  • 속성 창에서 범주 편집기의 모델에 액세스할 수 있습니다. 이 변경 내용은 범주 목록의 맨 위에 있는 향상된 공통 속성과 결합되어 컨트롤 작성자가 속성 창에서 다양한 기능을 갖춘 편집 환경을 제공할 수 있도록 해 줍니다.

  • 사용자 지정 컨트롤에 비해 표시기를 쉽게 배치할 수 있게 하는 새로운 유틸리티 메서드 AdornerPanel

  • Visual Studio 및 Expression Blend와 같은 여러 디자인 도구 간에 디자인 타임 구현을 공유하기 위한 새 프로그래밍 모델

  • 여러 대상 프레임워크 간에 디자인 타임 구현을 공유하기 위한 새 프로그래밍 모델

Visual Studio 2008과 Visual Studio 2010의 확장성 비교

다음 표에서는 사용자 지정 디자인 타임 환경을 Visual Studio 2008과 Visual Studio 2010에서 만드는 경우의 차이점을 요약하여 보여 줍니다.

Visual Studio 2008

Visual Studio 2010

디자인 타임 형식을 등록하려면 IRegisterMetadata 인터페이스를 구현하고 MetadataStore 클래스를 사용합니다.

디자인 타임 형식을 등록하려면 IProvideAttributeTable 인터페이스를 구현하고 CreateTable 메서드를 호출합니다.

어셈블리 수준 특성을 추가하지 않아도 됩니다.

디자인 타임 어셈블리를 ProvideMetadataAttribute 특성으로 표시해야 합니다.

디자이너 형식을 그래픽 요소와 연결하려면 다양한 요소 형식을 반환할 수 있는 NewItemFactory의 GetImage 메서드를 사용합니다.

디자이너 형식을 아이콘과 연결하려면 비트맵을 반환하는 GetImageStream 메서드를 사용합니다. 비트맵만 지원됩니다.

모델 속성에 액세스하려면 종속성 속성을 다음과 같이 사용합니다.

ModelProperty backgroundProperty = adornedControlModel.Properties[Control.BackgroundProperty];

모델 속성에 액세스하려면 종속성 속성의 이름을 다음과 같이 사용합니다.

ModelProperty backgroundProperty = adornedControlModel.Properties["Background"];

또한 형식/문자열 조합인 PropertyIdentifier를 정의할 수 있습니다. PropertyIdentifier는 간단한 이름 조회가 충분치 않은 경우 연결된 속성과 함께 사용됩니다.

레이아웃 공간과 렌더 공간을 구분하려면 AdornerCoordinateSpaces 클래스를 사용합니다.

AdornerCoordinateSpaces 클래스는 사용되지 않습니다.

콘텐츠를 기준으로 표시기 위치를 지정하려면 AdornerPlacementCollection 클래스를 사용합니다.

콘텐츠를 기준으로 표시기 위치를 지정하려면 SetAdornerHorizontalAlignment, SetAdornerVerticalAlignment, and SetAdornerMargin 메서드를 사용합니다. AdornerPlacementCollection 클래스는 이전 버전과의 호환성을 위해 유지됩니다.

참고 항목

기타 리소스

WPF Designer 확장성