SvgImageSource 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
SVG(확장 가능한 벡터 그래픽) 원본을 사용하는 속성에 대한 원본 개체를 제공합니다. SVG 파일을 참조하는 URI(Uniform Resource Identifier)를 사용하거나 SetSourceAsync(IRandomAccessStream) 를 호출하고 스트림을 제공하여 SvgImageSource를 정의할 수 있습니다.
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [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(Microsoft.UI.Xaml.WinUIContract), 65536)]
[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
- 상속
- 특성
예제
다음은 이미지 원본을 SVG 파일로 설정하는 방법의 예입니다. 명시적으로 지정된 높이 또는 너비가 없으므로 애플리케이션 레이아웃은 SVG가 디코딩할 적절한 크기를 결정합니다.
<Image Source="Assets/mysvg.svg"/>
설명
SvgImageSource를 사용하면 ImageBrush 를 사용하거나 이미지 컨트롤에서 직접 표시할 SVG 원본을 사용할 수 있습니다. 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 이벤트를 처리해야 합니다(컨트롤 클래스에서 해당 이벤트를 사용할 수 있는 경우).
Opened 및 OpenFailed는 상호 배타적입니다. SvgImageSource 개체에 원본 값이 설정되거나 다시 설정될 때마다 한 이벤트 또는 다른 이벤트가 항상 발생합니다.
크기 조정
의도한 사용 사례에 따라 여러 가지 방법으로 SvgImageSource의 크기를 지정할 수 있습니다.
- RasterizePixelHeight 및 RasterizePixelWidth 속성을 사용하여 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 |
항상 Windows App SDK 앱에서 를 반환 |
DispatcherQueue |
|
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 검색 또는 형식과 관련된 오류가 있을 때 발생합니다. |