Font dalam .NET MAUI
Secara default, aplikasi .NET Multi-platform App UI (.NET MAUI) menggunakan font Open Sans di setiap platform. Namun, default ini dapat diubah, dan font tambahan dapat didaftarkan untuk digunakan dalam aplikasi.
Semua kontrol yang menampilkan teks menentukan properti yang dapat diatur untuk mengubah tampilan font:
FontFamily
, dari jenisstring
.FontAttributes
, dari jenisFontAttributes
, yang merupakan enumerasi dengan tiga anggota:None
, ,Bold
danItalic
. Nilai default properti ini adalahNone
.FontSize
, dari jenisdouble
.FontAutoScalingEnabled
, dari jenisbool
, yang menentukan apakah UI aplikasi mencerminkan preferensi penskalaan teks yang diatur dalam sistem operasi. Nilai default properti ini adalahtrue
.
Properti ini didukung oleh BindableProperty objek, yang berarti bahwa properti ini dapat menjadi target pengikatan data, dan ditata.
Semua kontrol yang menampilkan teks secara otomatis menggunakan penskalakan font, yang berarti bahwa UI aplikasi mencerminkan preferensi penskalakan teks yang diatur dalam sistem operasi.
Mendaftarkan font
Font true type format (TTF) dan open type font (OTF) dapat ditambahkan ke aplikasi Anda dan direferensikan oleh nama file atau alias, dengan pendaftaran dilakukan dalam CreateMauiApp
metode di MauiProgram
kelas . Ini dicapai dengan memanggil ConfigureFonts
metode pada MauiAppBuilder
objek. Kemudian, pada IFontCollection
objek, panggil AddFont
metode untuk menambahkan font yang diperlukan ke aplikasi Anda:
namespace MyMauiApp
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("Lobster-Regular.ttf", "Lobster");
});
return builder.Build();
}
}
}
Dalam contoh di atas, argumen pertama untuk AddFont
metode adalah nama file font, sedangkan argumen kedua mewakili alias opsional yang fontnya dapat dirujuk saat mengonsumsinya.
Font dapat ditambahkan ke proyek aplikasi Anda dengan menyeretnya ke folder Resources\Fonts proyek, di mana tindakan build-nya akan secara otomatis diatur ke MauiFont. Ini membuat entri yang sesuai dalam file proyek Anda. Atau, semua font dalam aplikasi dapat didaftarkan dengan menggunakan kartubebas dalam file proyek Anda:
<ItemGroup>
<MauiFont Include="Resources\Fonts\*" />
</ItemGroup>
Font juga dapat ditambahkan ke folder lain dari proyek aplikasi Anda. Namun, dalam skenario ini tindakan build mereka harus diatur secara manual ke MauiFont di jendela Properti .
Pada waktu build, font disalin ke paket aplikasi Anda. Untuk informasi tentang menonaktifkan kemasan font, lihat Menonaktifkan kemasan font.
Catatan
Karakter *
kartubebas menunjukkan bahwa semua file dalam folder akan diperlakukan sebagai file font. Selain itu, jika Anda ingin menyertakan file dari sub-folder juga, maka konfigurasikan menggunakan karakter wildcard tambahan, misalnya, Resources\Fonts\**\*
.
Mengonsumsi font
Font terdaftar dapat digunakan dengan mengatur FontFamily
properti kontrol yang menampilkan teks ke nama font, tanpa ekstensi file:
<!-- Use font name -->
<Label Text="Hello .NET MAUI"
FontFamily="Lobster-Regular" />
Atau, dapat dikonsumsi dengan mereferensikan aliasnya:
<!-- Use font alias -->
<Label Text="Hello .NET MAUI"
FontFamily="Lobster" />
Kode C# yang setara adalah:
// Use font name
Label label1 = new Label
{
Text = "Hello .NET MAUI!",
FontFamily = "Lobster-Regular"
};
// Use font alias
Label label2 = new Label
{
Text = "Hello .NET MAUI!",
FontFamily = "Lobster"
};
Di Android, font sistem berikut dapat digunakan dengan mengaturnya sebagai nilai FontFamily
properti:
- monospace
- Serif
- sans-serif (atau sansserif)
- sans-serif-black (atau sansserif-black)
- sans-serif-condensed (atau sansserif-condensed)
- sans-serif-condensed-light (atau sansserif-condensed-light)
- sans-serif-light (atau sansserif-light)
- sans-serif-medium (atau sansserif-medium)
Misalnya, font sistem monospace dapat digunakan dengan XAML berikut:
<Label Text="Hello .NET MAUI"
FontFamily="monospace" />
Kode C# yang setara adalah:
// Use font name
Label label1 = new Label
{
Text = "Hello .NET MAUI!",
FontFamily = "monospace"
};
Mengatur atribut font
Kontrol yang menampilkan teks dapat mengatur FontAttributes
properti untuk menentukan atribut font:
<Label Text="Italics"
FontAttributes="Italic" />
<Label Text="Bold and italics"
FontAttributes="Bold, Italic" />
Kode C# yang setara adalah:
Label label1 = new Label
{
Text = "Italics",
FontAttributes = FontAttributes.Italic
};
Label label2 = new Label
{
Text = "Bold and italics",
FontAttributes = FontAttributes.Bold | FontAttributes.Italic
};
Mengatur ukuran font
Kontrol yang menampilkan teks dapat mengatur FontSize
properti untuk menentukan ukuran font. Properti FontSize
dapat diatur ke double
nilai:
<Label Text="Font size 24"
FontSize="24" />
Kode C# yang setara adalah:
Label label = new Label
{
Text = "Font size 24",
FontSize = 24
};
Catatan
Nilai diukur FontSize
dalam unit independen perangkat.
Menonaktifkan penskalakan otomatis font
Semua kontrol yang menampilkan teks memiliki penskalakan font yang diaktifkan secara default, yang berarti bahwa UI aplikasi mencerminkan preferensi penskalakan teks yang diatur dalam sistem operasi. Namun, perilaku ini dapat dinonaktifkan dengan mengatur FontAutoScalingEnabled
properti pada kontrol berbasis teks ke false
:
<Label Text="Scaling disabled"
FontSize="18"
FontAutoScalingEnabled="False" />
Pendekatan ini berguna ketika Anda ingin menjamin bahwa teks ditampilkan pada ukuran tertentu.
Catatan
Penskalakan otomatis font juga berfungsi dengan ikon font. Untuk informasi selengkapnya, lihat Menampilkan ikon font.
Mengatur properti font per platform
Kelas OnPlatform
dan On
dapat digunakan di XAML untuk mengatur properti font per platform. Contoh di bawah ini menetapkan keluarga dan ukuran font yang berbeda:
<Label Text="Different font properties on different platforms"
FontSize="{OnPlatform iOS=20, Android=22, WinUI=24}">
<Label.FontFamily>
<OnPlatform x:TypeArguments="x:String">
<On Platform="iOS" Value="MarkerFelt-Thin" />
<On Platform="Android" Value="Lobster-Regular" />
<On Platform="WinUI" Value="ArimaMadurai-Black" />
</OnPlatform>
</Label.FontFamily>
</Label>
Properti DeviceInfo.Platform
dapat digunakan dalam kode untuk mengatur properti font per platform:
Label label = new Label
{
Text = "Different font properties on different platforms"
};
label.FontSize = DeviceInfo.Platform == DevicePlatform.iOS ? 20 :
DeviceInfo.Platform == DevicePlatform.Android ? 22 : 24;
label.FontFamily = DeviceInfo.Platform == DevicePlatform.iOS ? "MarkerFelt-Thin" :
DeviceInfo.Platform == DevicePlatform.Android ? "Lobster-Regular" : "ArimaMadurai-Black";
Untuk informasi selengkapnya tentang menyediakan nilai khusus platform, lihat Informasi perangkat. Untuk informasi tentang OnPlatform
ekstensi markup, lihat Menyesuaikan tampilan UI berdasarkan platform.
Tampilkan ikon font
Ikon font dapat ditampilkan oleh aplikasi .NET MAUI dengan menentukan data ikon font dalam FontImageSource objek. Kelas ini, yang berasal dari ImageSource kelas , memiliki properti berikut:
Glyph
– nilai karakter unicode ikon font, ditentukan sebagaistring
.Size
double
– nilai yang menunjukkan ukuran, dalam unit independen perangkat, dari ikon font yang dirender. Nilai default adalah 30. Selain itu, properti ini dapat diatur ke ukuran font bernama.FontFamily
– mewakilistring
keluarga font tempat ikon font berada.Color
– nilai opsional Color yang akan digunakan saat menampilkan ikon font.
Data ini digunakan untuk membuat PNG, yang dapat ditampilkan oleh tampilan apa pun yang dapat menampilkan ImageSource. Pendekatan ini mengizinkan ikon font, seperti emoji, untuk ditampilkan oleh beberapa tampilan, dibandingkan dengan membatasi tampilan ikon font ke tampilan penyajian teks tunggal, seperti Label.
Penting
Ikon font saat ini hanya dapat ditentukan oleh representasi karakter unicode mereka.
Contoh XAML berikut memiliki ikon font tunggal yang ditampilkan oleh Image tampilan:
<Image BackgroundColor="#D1D1D1">
<Image.Source>
<FontImageSource Glyph=""
FontFamily="{OnPlatform iOS=Ionicons, Android=ionicons.ttf#}"
Size="44" />
</Image.Source>
</Image>
Kode ini menampilkan ikon XBox, dari keluarga font Ionicons, dalam Image tampilan. Perhatikan bahwa sementara karakter unicode untuk ikon ini adalah \uf30c
, itu harus diloloskan 
di XAML dan menjadi . Kode C# yang setara adalah:
Image image = new Image { BackgroundColor = Color.FromArgb("#D1D1D1") };
image.Source = new FontImageSource
{
Glyph = "\uf30c",
FontFamily = DeviceInfo.Platform == DevicePlatform.iOS ? "Ionicons" : "ionicons.ttf#",
Size = 44
};
Cuplikan layar berikut menunjukkan beberapa ikon font yang ditampilkan:
Atau, Anda dapat menampilkan ikon font dengan FontImage
ekstensi markup. Untuk informasi selengkapnya, lihat Memuat ikon font.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk