Gambar
UI Aplikasi Multi-platform .NET (.NET MAUI) Image menampilkan gambar yang dapat dimuat dari file lokal, URI, atau aliran. Format gambar platform standar didukung, termasuk GIF animasi, dan file Scalable Vector Graphics (SVG) lokal juga didukung. Untuk informasi selengkapnya tentang menambahkan gambar ke proyek aplikasi .NET MAUI, lihat Menambahkan gambar ke proyek aplikasi .NET MAUI.
Image menentukan properti berikut:
Aspect
, dari jenisAspect
, mendefinisikan mode penskalaan gambar.IsAnimationPlaying
, dari jenisbool
, menentukan apakah GIF animasi diputar atau dihentikan. Nilai default properti ini adalahfalse
.IsLoading
, dari jenisbool
, menunjukkan status pemuatan gambar. Nilai default properti ini adalahfalse
.IsOpaque
, dari jenisbool
, menunjukkan apakah mesin penyajian dapat memperlakukan gambar sebagai buram saat merendernya. Nilai default properti ini adalahfalse
.Source
, dari jenis ImageSource, menentukan sumber gambar.
Properti ini didukung oleh BindableProperty objek, yang berarti dapat ditata, dan menjadi target pengikatan data.
Catatan
Ikon font dapat ditampilkan oleh dengan Image menentukan data ikon font sebagai FontImageSource objek. Untuk informasi selengkapnya, lihat Menampilkan ikon font.
Kelas ImageSource menentukan metode berikut yang dapat digunakan untuk memuat gambar dari sumber yang berbeda:
FromFile
mengembalikan yangFileImageSource
membaca gambar dari file lokal.FromUri
UriImageSource
mengembalikan yang mengunduh dan membaca gambar dari URI tertentu.FromStream
mengembalikan yangStreamImageSource
membaca gambar dari aliran yang memasok data gambar.
Di XAML, gambar dapat dimuat dari file dan URI dengan menentukan nama file atau URI sebagai nilai string untuk Source
properti . Gambar juga dapat dimuat dari aliran di XAML melalui ekstensi markup kustom.
Penting
Gambar akan ditampilkan pada resolusi penuhnya kecuali ukuran Image dibatasi oleh tata letaknya, atau HeightRequest properti Image atau WidthRequest ditentukan.
Untuk informasi tentang menambahkan ikon aplikasi dan layar percikan ke aplikasi Anda, lihat Ikon aplikasi dan layar Splash.
Memuat gambar lokal
Gambar dapat ditambahkan ke proyek aplikasi Anda dengan menyeretnya ke folder Resources\Images proyek Anda, di mana tindakan build-nya akan secara otomatis diatur ke MauiImage. Pada waktu build, gambar vektor diubah ukurannya menjadi resolusi yang benar untuk platform dan perangkat target, dan ditambahkan ke paket aplikasi Anda. Ini diperlukan karena platform yang berbeda mendukung resolusi gambar yang berbeda, dan sistem operasi memilih resolusi gambar yang sesuai saat runtime berdasarkan kemampuan perangkat.
Untuk mematuhi aturan penamaan sumber daya Android, semua nama file gambar lokal harus huruf kecil, dimulai dan diakhapi dengan karakter huruf, dan hanya berisi karakter alfanumerik atau garis bawah. Untuk informasi selengkapnya, lihat Gambaran umum sumber daya aplikasi di developer.android.com.
Penting
.NET MAUI mengonversi file SVG ke file PNG. Oleh karena itu, saat menambahkan file SVG ke proyek aplikasi .NET MAUI Anda, file tersebut harus dirujuk dari XAML atau C# dengan ekstensi .png.
Mematuhi aturan ini untuk penamaan dan penempatan file memungkinkan XAML berikut memuat dan menampilkan gambar:
<Image Source="dotnet_bot.png" />
Kode C# yang setara adalah:
Image image = new Image
{
Source = ImageSource.FromFile("dotnet_bot.png")
};
Metode ImageSource.FromFile
ini memerlukan string
argumen, dan mengembalikan objek baru FileImageSource
yang membaca gambar dari file. Ada juga operator konversi implisit yang memungkinkan nama file ditentukan sebagai string
argumen ke Image.Source
properti:
Image image = new Image { Source = "dotnet_bot.png" };
Memuat gambar jarak jauh
Gambar jarak jauh dapat diunduh dan ditampilkan dengan menentukan URI sebagai nilai Source
properti:
<Image Source="https://aka.ms/campus.jpg" />
Kode C# yang setara adalah:
Image image = new Image
{
Source = ImageSource.FromUri(new Uri("https://aka.ms/campus.jpg"))
};
Metode ImageSource.FromUri
ini memerlukan Uri
argumen, dan mengembalikan objek baru UriImageSource
yang membaca gambar dari Uri
. Ada juga konversi implisit untuk URI berbasis string:
Image image = new Image { Source = "https://aka.ms/campus.jpg" };
Penembolokan gambar
Penembolokan gambar yang diunduh diaktifkan secara default, dengan gambar yang di-cache disimpan selama 1 hari. Perilaku ini dapat diubah dengan mengatur properti UriImageSource
kelas.
Kelas UriImageSource
menentukan properti berikut:
Uri
, dari jenisUri
, mewakili URI gambar yang akan diunduh untuk ditampilkan.CacheValidity
, dari jenisTimeSpan
, menentukan berapa lama gambar akan disimpan secara lokal. Nilai default properti ini adalah 1 hari.CachingEnabled
, dari jenisbool
, menentukan apakah penembolokan gambar diaktifkan. Nilai default properti ini adalahtrue
.
Properti ini didukung oleh BindableProperty objek, yang berarti dapat ditata, dan menjadi target pengikatan data.
Untuk mengatur periode cache tertentu, atur Source
properti ke UriImageSource
objek yang mengatur propertinya CacheValidity
:
<Image>
<Image.Source>
<UriImageSource Uri="https://aka.ms/campus.jpg"
CacheValidity="10:00:00:00" />
</Image.Source>
</Image>
Kode C# yang setara adalah:
Image image = new Image();
image.Source = new UriImageSource
{
Uri = new Uri("https://aka.ms/campus.jpg"),
CacheValidity = new TimeSpan(10,0,0,0)
};
Dalam contoh ini, periode penembolokan diatur ke 10 hari.
Memuat gambar dari aliran
Gambar dapat dimuat dari aliran dengan ImageSource.FromStream
metode :
Image image = new Image
{
Source = ImageSource.FromStream(() => stream)
};
Penting
Penembolokan gambar dinonaktifkan di Android saat memuat gambar dari streaming dengan ImageSource.FromStream
metode . Hal ini disebabkan oleh kurangnya data untuk membuat kunci cache yang wajar.
Muat ikon font
Ekstensi FontImage
markup memungkinkan Anda menampilkan ikon font dalam tampilan apa pun yang dapat menampilkan ImageSource. Ini menyediakan fungsionalitas FontImageSource yang sama dengan kelas, tetapi dengan representasi yang lebih ringkas.
Ekstensi FontImage
markup didukung oleh FontImageExtension kelas , yang menentukan properti berikut:
FontFamily
jenisstring
, keluarga font tempat ikon font berada.Glyph
jenisstring
, nilai karakter unicode ikon font.Color
jenis Color, warna yang akan digunakan saat menampilkan ikon font.Size
jenisdouble
, ukuran, dalam unit independen perangkat, dari ikon font yang dirender. Nilai default adalah 30. Selain itu, properti ini dapat diatur ke ukuran font bernama.
Catatan
Parser XAML memungkinkan FontImageExtension kelas disingkat sebagai FontImage
.
Properti Glyph
adalah properti konten dari FontImageExtension. Oleh karena itu, untuk ekspresi markup XAML yang dinyatakan dengan kurung kurawal, Anda dapat menghilangkan Glyph=
bagian ekspresi asalkan itu adalah argumen pertama.
Contoh XAML berikut menunjukkan cara menggunakan FontImage
ekstensi markup:
<Image BackgroundColor="#D1D1D1"
Source="{FontImage , FontFamily=Ionicons, Size=44}" />
Dalam contoh ini, versi singkat dari FontImageExtension nama kelas digunakan untuk menampilkan ikon XBox, dari keluarga font Ionicons, dalam Image:
Sementara karakter unicode untuk ikon adalah \uf30c
, itu harus lolos 
di XAML dan menjadi .
Untuk informasi tentang menampilkan ikon font dengan menentukan data ikon font dalam FontImageSource objek, lihat Menampilkan ikon font.
Memuat GIF animasi
.NET MAUI mencakup dukungan untuk menampilkan GIF kecil animasi. Ini dicapai dengan mengatur Source
properti ke file GIF animasi:
<Image Source="demo.gif" />
Penting
Meskipun dukungan GIF animasi di .NET MAUI mencakup kemampuan untuk mengunduh file, gif animasi tidak mendukung penembolokan atau streaming.
Secara default, ketika GIF animasi dimuat, GIF tidak akan diputar. Ini karena IsAnimationPlaying
properti , yang mengontrol apakah GIF animasi diputar atau dihentikan, memiliki nilai false
default . Oleh karena itu, ketika GIF animasi dimuat, GIF tidak akan diputar sampai IsAnimationPlaying
properti diatur ke true
. Pemutaran dapat dihentikan dengan mengatur ulang properti ke IsAnimationPlaying
false
. Perhatikan bahwa properti ini tidak berpengaruh saat menampilkan sumber gambar non-GIF.
Mengontrol penskalakan gambar
Properti Aspect
menentukan bagaimana gambar akan diskalakan agar sesuai dengan area tampilan, dan harus diatur ke salah satu anggota Aspect
enumerasi:
AspectFit
- kotak surat gambar (jika diperlukan) sehingga seluruh gambar cocok dengan area tampilan, dengan ruang kosong ditambahkan ke atas/bawah atau samping tergantung pada apakah gambar lebar atau tinggi.AspectFill
- mengklip gambar sehingga mengisi area tampilan sambil mempertahankan rasio aspek.Fill
- membentangkan gambar untuk sepenuhnya dan mengisi area tampilan. Ini dapat mengakibatkan gambar terdistorsi.Center
- mempusatkan gambar di area tampilan sambil mempertahankan rasio aspek.