Share via


SvgImageSource Kelas

Definisi

Menyediakan objek sumber untuk properti yang menggunakan sumber Scalable Vector Graphics (SVG). Anda dapat menentukan SvgImageSource dengan menggunakan Pengidentifikasi Sumber Daya Seragam (URI) yang mereferensikan file SVG, atau dengan memanggil SetSourceAsync(IRandomAccessStream) dan menyediakan aliran.

/// [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
Warisan
Object IInspectable DependencyObject ImageSource SvgImageSource
Atribut

Persyaratan Windows

Rangkaian perangkat
Windows 10 Creators Update (diperkenalkan dalam 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v4.0)

Contoh

Berikut adalah contoh cara mengatur sumber Gambar ke file SVG. Karena tidak ada tinggi atau lebar yang ditentukan secara eksplisit, tata letak aplikasi akan menentukan ukuran yang sesuai untuk didekodekan SVG.

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

Keterangan

SvgImageSource memungkinkan Anda menggunakan sumber SVG untuk ditampilkan menggunakan ImageBrush atau langsung dalam kontrol Gambar . SvgImageSource mendukung mode statis aman dari spesifikasi SVG dan tidak mendukung animasi atau interaksi. API Direct2D menyediakan dukungan rendering SVG yang mendasar dan untuk informasi selengkapnya tentang elemen SVG dan dukungan atribut tertentu, lihat Dukungan SVG. Untuk informasi selengkapnya tentang format dan cara menggunakan Pengidentifikasi Sumber Daya Seragam (URI) untuk mengakses file sumber gambar yang berasal dari sumber daya aplikasi, lihat Gambar dan ImageBrush.

SvgImageSource mewakili abstraksi sehingga sumber SVG dapat diatur secara asinkron tetapi masih direferensikan dalam markup XAML sebagai nilai properti, atau dalam kode sebagai objek yang tidak menggunakan sintaks yang dapat ditunggu. Saat Anda membuat objek SvgImageSource dalam kode, awalnya objek tersebut tidak memiliki sumber yang valid. Anda kemudian harus mengatur sumbernya menggunakan salah satu teknik ini:

  • Gunakan konstruktor SvgImageSource(Uri) daripada konstruktor default. Meskipun ini adalah konstruktor, Anda dapat menganggap ini sebagai memiliki perilaku asinkron implisit: SvgImageSource tidak akan siap digunakan sampai menimbulkan peristiwa Terbuka yang menunjukkan keberhasilan operasi set sumber asinkron.
  • Atur properti UriSource . Seperti halnya konstruktor Uri , tindakan ini secara implisit asinkron, dan SvgImageSource tidak akan siap digunakan sampai memunculkan peristiwa Terbuka .
  • Gunakan SetSourceAsync(IRandomAccessStream). Metode ini secara eksplisit asinkron. Properti tempat Anda mungkin menggunakan SvgImageSource, seperti Sumber, dirancang untuk perilaku asinkron ini, dan tidak akan melemparkan pengecualian jika diatur menggunakan SvgImageSource yang belum memiliki sumber lengkap. Daripada menangani pengecualian, Anda harus menangani peristiwa Opened atau OpenFailed baik pada SvgImageSource secara langsung atau pada kontrol yang menggunakan sumber (jika peristiwa tersebut tersedia di kelas kontrol).

Dibuka dan OpenFailed saling eksklusif. Satu peristiwa atau yang lain akan selalu dinaikkan setiap kali objek SvgImageSource memiliki set atau reset nilai sumbernya.

Pengukuran

Bergantung pada kasus penggunaan yang dimaksudkan, Anda dapat menentukan ukuran SvgImageSource dengan beberapa cara berbeda:

  • Gunakan properti RasterizePixelHeight dan RasterizePixelWidth untuk menentukan tinggi dan lebar eksplisit dalam piksel logis untuk mendekode sumber SVG.
  • Jika Anda tidak menentukan RasterizePixelHeight atau RasterizePixelWidth, maka tata letak aplikasi akan menentukan ukuran dekode sambil tetap mempertahankan rasio aspek. Jika tidak ada ukuran yang dapat ditentukan dari tata letak aplikasi, sumber SVG akan didekodekan ke ukuran jendela maksimum.

Kompatibilitas versi

Kelas SvgImageSource tidak tersedia sebelum Windows 10, versi 1703. Jika pengaturan 'versi platform minimum' aplikasi Anda di Microsoft Visual Studio kurang dari 'versi yang diperkenalkan' yang ditampilkan di blok Persyaratan nanti di halaman ini, Anda tidak akan dapat menggunakan SvgImageSource. Untuk informasi selengkapnya, lihat Kode adaptif versi.

Untuk menghindari pengecualian saat aplikasi Anda berjalan pada versi Windows 10 sebelumnya, jangan atur properti ini di XAML atau gunakan tanpa melakukan pemeriksaan runtime. Contoh ini menunjukkan cara menggunakan kelas ApiInformation untuk memeriksa keberadaan kelas ini sebelum Anda menggunakannya.

Konstruktor

SvgImageSource()

Menginisialisasi instans baru kelas SvgImageSource .

SvgImageSource(Uri)

Menginisialisasi instans baru kelas SvgImageSource , menggunakan Pengidentifikasi Sumber Daya Seragam (URI) yang disediakan.

Properti

Dispatcher

Mendapatkan CoreDispatcher yang dikaitkan dengan objek ini. CoreDispatcher mewakili fasilitas yang dapat mengakses DependencyObject pada utas UI bahkan jika kode dimulai oleh utas non-UI.

(Diperoleh dari DependencyObject)
RasterizePixelHeight

Mendapatkan atau mengatur tinggi yang akan digunakan untuk operasi rasterisasi SVG.

RasterizePixelHeightProperty

Mengidentifikasi properti dependensi RasterizePixelHeight .

RasterizePixelWidth

Mendapatkan atau mengatur lebar yang akan digunakan untuk operasi rasterisasi SVG.

RasterizePixelWidthProperty

Mengidentifikasi properti dependensi RasterizePixelWidth .

UriSource

Mendapatkan atau mengatur Pengidentifikasi Sumber Daya Seragam (URI) dari file sumber SVG yang menghasilkan SvgImageSource ini.

UriSourceProperty

Mengidentifikasi properti dependensi UriSource .

Metode

ClearValue(DependencyProperty)

Menghapus nilai lokal properti dependensi.

(Diperoleh dari DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Mengembalikan nilai dasar apa pun yang ditetapkan untuk properti dependensi, yang akan berlaku dalam kasus di mana animasi tidak aktif.

(Diperoleh dari DependencyObject)
GetValue(DependencyProperty)

Mengembalikan nilai efektif properti dependensi saat ini dari DependencyObject.

(Diperoleh dari DependencyObject)
ReadLocalValue(DependencyProperty)

Mengembalikan nilai lokal properti dependensi, jika nilai lokal ditetapkan.

(Diperoleh dari DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Mendaftarkan fungsi pemberitahuan untuk mendengarkan perubahan pada DependencyProperty tertentu pada instans DependencyObject ini.

(Diperoleh dari DependencyObject)
SetSourceAsync(IRandomAccessStream)

Mengatur SVG sumber untuk SvgImageSource dengan mengakses aliran dan memproses hasilnya secara asinkron.

SetValue(DependencyProperty, Object)

Mengatur nilai lokal properti dependensi pada DependencyObject.

(Diperoleh dari DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Membatalkan pemberitahuan perubahan yang sebelumnya terdaftar dengan memanggil RegisterPropertyChangedCallback.

(Diperoleh dari DependencyObject)

Acara

Opened

Terjadi ketika sumber SVG diunduh dan didekode tanpa kegagalan.

OpenFailed

Terjadi ketika ada kesalahan yang terkait dengan pengambilan atau format SVG.

Berlaku untuk