다음을 통해 공유


SvgImageSource 클래스

정의

SVG(Scalable Vector Graphics) 원본을 사용하는 속성에 대한 원본 개체를 제공합니다. SVG 파일을 참조하는 URI(Uniform Resource Identifier)를 사용하거나 SetSourceAsync(IRandomAccessStream) 를 호출하고 스트림을 제공하여 SvgImageSource를 정의할 수 있습니다.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class SvgImageSource : ImageSource
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class SvgImageSource : ImageSource
Public Class SvgImageSource
Inherits ImageSource
상속
Object IInspectable DependencyObject ImageSource SvgImageSource
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 Creators Update (10.0.15063.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v4.0에서 도입되었습니다.)

예제

다음은 이미지 의 원본을 SVG 파일로 설정하는 방법의 예입니다. 명시적으로 지정된 높이 또는 너비가 없으므로 애플리케이션 레이아웃은 SVG가 디코딩할 적절한 크기를 지정합니다.

<Image Source="Assets/mysvg.svg"/>

설명

SvgImageSource를 사용하면 SVG 원본을 사용하여 ImageBrush 를 사용하거나 이미지 컨트롤에 직접 표시할 수 있습니다. SvgImageSource는 SVG 사양에서 보안 정적 모드를 지원하며 애니메이션 또는 상호 작용을 지원하지 않습니다. Direct2D API는 기본 SVG 렌더링 지원을 제공하고 특정 SVG 요소 및 특성 지원에 대한 자세한 내용은 SVG 지원을 참조하세요. 형식 및 URI(Uniform Resource Identifier)를 사용하여 앱 리소스에서 제공되는 이미지 원본 파일에 액세스하는 방법에 대한 자세한 내용은 Image 및 ImageBrush를 참조하세요.

SvgImageSource는 추상화 를 나타내므로 SVG 원본을 비동기적으로 설정할 수 있지만 XAML 태그에서 속성 값으로 또는 코드에서 대기 가능한 구문을 사용하지 않는 개체로 참조할 수 있습니다. 코드에서 SvgImageSource 개체를 만들 때 처음에는 유효한 원본이 없습니다. 그런 다음, 다음 기술 중 하나를 사용하여 원본을 설정해야 합니다.

  • 기본 생성자 대신 SvgImageSource(Uri) 생성자를 사용합니다. 생성자이지만 이를 암시적 비동기 동작이 있다고 생각할 수 있습니다. SvgImageSource는 성공적인 비동기 소스 집합 작업을 나타내는 Opened 이벤트를 발생하기 전까지는 사용할 준비가 되지 않습니다.
  • UriSource 속성을 설정합니다. Uri 생성자와 마찬가지로 이 작업은 암시적으로 비동기적이며 SvgImageSource는 Opened 이벤트가 발생할 때까지 사용할 준비가 되지 않습니다.
  • SetSourceAsync(IRandomAccessStream)를 사용합니다. 이 메서드는 명시적으로 비동기적입니다. 원본과 같은 SvgImageSource를 사용할 수 있는 속성은 이 비동기 동작을 위해 설계되었으며 아직 전체 원본이 없는 SvgImageSource를 사용하여 설정된 경우 예외를 throw하지 않습니다. 예외를 처리하는 대신 SvgImageSource에서 직접 또는 원본을 사용하는 컨트롤에서 Opened 또는 OpenFailed 이벤트를 처리해야 합니다(컨트롤 클래스에서 해당 이벤트를 사용할 수 있는 경우).

OpenedOpenFailed 는 상호 배타적입니다. SvgImageSource 개체에 원본 값이 설정되거나 다시 설정될 때마다 한 이벤트 또는 다른 이벤트가 항상 발생합니다.

크기 조정

의도한 사용 사례에 따라 다음과 같은 여러 가지 방법으로 SvgImageSource의 크기를 지정할 수 있습니다.

  • RasterizePixelHeightRasterizePixelWidth 속성을 사용하여 SVG 원본을 디코딩할 논리적 픽셀의 명시적 높이와 너비를 지정합니다.
  • RasterizePixelHeight 또는 RasterizePixelWidth를 지정하지 않으면 애플리케이션의 레이아웃은 가로 세로 비율을 유지하면서 디코딩 크기를 지정합니다. 애플리케이션의 레이아웃에서 크기를 확인할 수 없는 경우 SVG 원본은 최대 창 크기로 디코딩됩니다.

버전 호환성

SvgImageSource 클래스는 Windows 10 버전 1703 이전에는 사용할 수 없습니다. Microsoft Visual Studio에서 앱의 '최소 플랫폼 버전' 설정이 이 페이지의 뒷부분에 있는 요구 사항 블록에 표시된 '도입된 버전'보다 작으면 SvgImageSource를 사용할 수 없습니다. 자세한 내용은 버전 적응 코드를 참조하세요.

앱이 이전 버전의 Windows 10 실행되는 경우 예외를 방지하려면 XAML에서 이 속성을 설정하거나 런타임 검사 수행하지 않고 사용하지 마세요. 이 예제에서는 사용 하기 전에이 클래스의 존재에 대 한 검사 ApiInformation 클래스를 사용 하는 방법을 보여 집니다.

생성자

SvgImageSource()

SvgImageSource 클래스의 새 instance 초기화합니다.

SvgImageSource(Uri)

제공된 URI(Uniform Resource Identifier)를 사용하여 SvgImageSource 클래스의 새 instance 초기화합니다.

속성

Dispatcher

이 개체가 연결된 CoreDispatcher 를 가져옵니다. CoreDispatcher는 코드가 비 UI 스레드에서 시작되더라도 UI 스레드에서 DependencyObject에 액세스할 수 있는 기능을 나타냅니다.

(다음에서 상속됨 DependencyObject)
RasterizePixelHeight

SVG 래스터화 작업에 사용할 높이를 가져오거나 설정합니다.

RasterizePixelHeightProperty

RasterizePixelHeight 종속성 속성을 식별합니다.

RasterizePixelWidth

SVG 래스터화 작업에 사용할 너비를 가져오거나 설정합니다.

RasterizePixelWidthProperty

RasterizePixelWidth 종속성 속성을 식별합니다.

UriSource

SvgImageSource를 생성한 SVG 원본 파일의 URI(Uniform Resource Identifier)를 가져오거나 설정합니다.

UriSourceProperty

UriSource 종속성 속성을 식별합니다.

메서드

ClearValue(DependencyProperty)

종속성 속성의 로컬 값을 지웁니다.

(다음에서 상속됨 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

애니메이션이 활성화되지 않은 경우에 적용되는 종속성 속성에 대해 설정된 기본 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
GetValue(DependencyProperty)

DependencyObject에서 종속성 속성의 현재 유효 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
ReadLocalValue(DependencyProperty)

로컬 값이 설정된 경우 종속성 속성의 로컬 값을 반환합니다.

(다음에서 상속됨 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

DependencyObject instance 특정 DependencyProperty에 대한 변경 내용을 수신 대기하기 위한 알림 함수를 등록합니다.

(다음에서 상속됨 DependencyObject)
SetSourceAsync(IRandomAccessStream)

스트림에 액세스하고 결과를 비동기적으로 처리하여 SvgImageSource 의 원본 SVG를 설정합니다.

SetValue(DependencyProperty, Object)

DependencyObject에 대한 종속성 속성의 로컬 값을 설정합니다.

(다음에서 상속됨 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

RegisterPropertyChangedCallback을 호출하여 이전에 등록된 변경 알림을 취소합니다.

(다음에서 상속됨 DependencyObject)

이벤트

Opened

SVG 원본을 다운로드하고 오류 없이 디코딩할 때 발생합니다.

OpenFailed

SVG 검색 또는 형식과 관련된 오류가 있을 때 발생합니다.

적용 대상