Latihan - Menggunakan Grid untuk membangun antarmuka pengguna
Dalam latihan ini, Anda menggunakan Grid
untuk mengatur tampilan di Antarmuka Pengguna (UI) Anda. Anda mulai dengan versi lain dari proyek TipCalculator, dan menyesuaikannya untuk membuat UI lebih intuitif. Anda juga memindahkan tombol ke bagian bawah halaman. Kali ini Anda menggunakan Grid
tata letak daripada menggunakan VerticalStackLayout
dan HorizontalStackLayout
. Gambar berikut menunjukkan antarmuka pengguna awal, dan UI yang dihasilkan dari mengikuti langkah-langkah dalam latihan ini:
Membuka solusi permulaan
Solusi awal berisi aplikasi kalkulator tip yang berfungsi penuh.
Menggunakan Visual Studio, buka solusi starter di folder exercise3/TipCalculator di repositori yang Anda kloning di awal latihan sebelumnya.
Buka MainPage.xaml. Perhatikan bahwa semua tampilan ditampilkan menggunakan satu panel vertikal
StackLayout
:<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:TipCalculator" x:Class="TipCalculator.MainPage"> <VerticalStackLayout> <Label Text="Bill" /> <Entry x:Name="billInput" Placeholder="Enter Amount" Keyboard="Numeric" /> <Label Text="Tip" /> <Label x:Name="tipOutput" Text="0.00" /> <Label Text="Total" /> <Label x:Name="totalOutput" Text="0.00" /> <Label Text="Tip Percentage" /> <Label x:Name="tipPercent" Text="15%" /> <Slider x:Name="tipPercentSlider" Minimum="0" Maximum="100" Value="15" /> <Button Text="15%" Clicked="OnNormalTip" /> <Button Text="20%" Clicked="OnGenerousTip" /> <Button x:Name="roundDown" Text="Round Down" /> <Button x:Name="roundUp" Text="Round Up" /> </VerticalStackLayout> </ContentPage>
Membuat tata letak Kisi
Ubah panel tata letak dari
VerticalStackLayout
keGrid
dengan padding40
unit.Menentukan tujuh baris dan dua kolom untuk
Grid
. Membuat semua ukuran barisAuto
kecuali baris keempat. Baris keempat harus digunakanStar
sehingga mendapatkan semua ruang yang tersisa yang tersedia di kisi. Gunakan ukuranStar
untuk kedua kolom.<Grid RowDefinitions="Auto, Auto, Auto, *, Auto, Auto, Auto" ColumnDefinitions="*, *" Padding="40"> ... </Grid>
Posisikan tampilan di sel
Tambahkan setelan untuk
Grid.Row
danGrid.Column
ke setiap tampilan untuk menetapkannya ke sel yang sesuai diGrid
. Gunakan cuplikan layar berikut untuk membantu Anda menentukan di mana setiap tampilan harus ditempatkan:Contoh berikut menunjukkan cara mengatur posisi untuk Tagihan
Label
, danbillInput
Entry
tampilan:... <Label Text="Bill" Grid.Row="0" Grid.Column="0"/> <Entry x:Name="billInput" Placeholder="Enter Amount" Keyboard="Numeric" Grid.Row="0" Grid.Column="1"/> ...
Ratakan Tagihan
Label
danEntry
dengan mengatur propertiVerticalOptions
keCenter
pada Label.Tambahkan pengaturan untuk
Grid.ColumnSpan
keSlider
sehingga mencakup dua kolom:<Slider ... Grid.ColumnSpan="2" ... />
Label
Temukan dengan teks Persentase Tip. Atur sehingga menempati posisi kiri bawah dalam persegi panjangnya:<Label Text="Tip Percentage" VerticalOptions="End" HorizontalOptions="Start" ... />
Temukan
Label
bernama tipPercent. Atur sehingga menempati posisi kanan bawah dalam persegi panjangnya:<Label x:Name="tipPercent" VerticalOptions="End" HorizontalOptions="End" ... />
Setel properti
Margin
untuk keempat tombol ke5
.
Markup XAML lengkap untuk halaman akan terlihat seperti ini:
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:TipCalculator"
x:Class="TipCalculator.MainPage">
<Grid RowDefinitions="Auto, Auto, Auto, *, Auto, Auto, Auto"
ColumnDefinitions="*, *"
Padding="40">
<Label Text="Bill" VerticalOptions="Center" Grid.Row="0" Grid.Column="0"/>
<Entry x:Name="billInput" Placeholder="Enter Amount" Keyboard="Numeric" Grid.Row="0" Grid.Column="1"/>
<Label Text="Tip" Grid.Row="1" Grid.Column="0"/>
<Label x:Name="tipOutput" Text="0.00" Grid.Row="1" Grid.Column="1"/>
<Label Text="Total" Grid.Row="2" Grid.Column="0"/>
<Label x:Name="totalOutput" Text="0.00" Grid.Row="2" Grid.Column="1"/>
<Label Text="Tip Percentage" VerticalOptions="End" HorizontalOptions="Start" Grid.Row="3" Grid.Column="0"/>
<Label x:Name="tipPercent" Text="15%" VerticalOptions="End" HorizontalOptions="End" Grid.Row="3" Grid.Column="1"/>
<Slider x:Name="tipPercentSlider" Minimum="0" Maximum="100" Value="15" Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="2"/>
<Button Text="15%" Clicked="OnNormalTip" Margin="5" Grid.Row="5" Grid.Column="0"/>
<Button Text="20%" Clicked="OnGenerousTip" Margin="5" Grid.Row="5" Grid.Column="1"/>
<Button x:Name="roundDown" Margin="5" Text="Round Down" Grid.Row="6" Grid.Column="0"/>
<Button x:Name="roundUp" Margin="5" Text="Round Up" Grid.Row="6" Grid.Column="1"/>
</Grid>
</ContentPage>
Periksa hasilnya
Jalankan aplikasi dan lihat perbedaan dalam antarmuka pengguna. Anda menggunakan Grid
untuk meningkatkan estetika antarmuka pengguna yang sudah ada. Grid
lebih kuat dari StackLayout
. Secara khusus, Grid
membuatnya jauh lebih mudah untuk menyelaraskan tampilan di seluruh baris.