GridLength Struktur
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili pengukuran untuk logika kontrol yang secara eksplisit mendukung ukuran Bintang (*) dan Ukuran otomatis .
public value class GridLength
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct GridLength
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct GridLength
Public Structure GridLength
<object property="doubleValue"/>
- or -
<object property="starSizing"/>
-or-
<object property="Auto"/>
- Warisan
-
GridLength
- Atribut
Persyaratan Windows
Rangkaian perangkat |
Windows 10 (diperkenalkan dalam 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)
|
Contoh
Contoh ini memperlihatkan cara mengatur lebar kolom kisi di XAML, baik sebagai sumber daya atau langsung sebagai nilai properti Lebar.
<Grid>
<Grid.Resources>
<GridLength x:Key="gridLength200">200</GridLength>
<GridLength x:Key="gridLength2star">2*</GridLength>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="gridColumn0" Width="{StaticResource gridLength200}"/>
<ColumnDefinition x:Name="gridColumn1" Width="200"/>
<ColumnDefinition x:Name="gridColumn2" Width="Auto"/>
<ColumnDefinition x:Name="gridColumn3" Width="3*"/>
<ColumnDefinition x:Name="gridColumn4" Width="{StaticResource gridLength2star}"/>
<ColumnDefinition x:Name="gridColumn5" Width="*"/>
</Grid.ColumnDefinitions>
<Border Background="Red" Grid.Column="0"/>
<Border Background="Orange" Grid.Column="1"/>
<Border Background="Yellow" Grid.Column="2" Width="100"/>
<Border Background="Green" Grid.Column="3"/>
<Border Background="Blue" Grid.Column="4"/>
<Border Background="Violet" Grid.Column="5"/>
</Grid>
XAML menghasilkan output ini di perancang Visual Studio:

Berikut cara mengatur nilai yang sama dalam kode. Dua panjang kisi pertama setara, tetapi yang pertama menggunakan konstruktor yang disederhanakan.
gridColumn0.Width = new GridLength(200);
gridColumn1.Width = new GridLength(200, GridUnitType.Pixel);
gridColumn2.Width = new GridLength(0, GridUnitType.Auto);
gridColumn3.Width = new GridLength(3, GridUnitType.Star);
gridColumn4.Width = new GridLength(2, GridUnitType.Star);
gridColumn5.Width = new GridLength(1, GridUnitType.Star);
Keterangan
Jenis seperti ColumnDefinition dan RowDefinition menggunakan nilai GridLength untuk beberapa propertinya (ColumnDefinition.Width dan RowDefinition.Height). Nilai properti ini digunakan untuk mendukung distribusi variabel ruang yang tersedia dalam kontainer tata letak seperti Grid (dan juga jenis Grid turunan seperti VariableSizedWrapGrid).
GridLength dapat menjelaskan salah satu dari tiga mode untuk ukuran:
- Lebar tetap.
- Distribusi tertimbang (ukuran star).
- Mode ukuran "Otomatis".
Nilai GridLength biasanya dideklarasikan dalam sintaks atribut XAML. Dalam XAML, distribusi tertimbang dinyatakan menggunakan simbol "*", didahului oleh angka yang menyatakan faktor pembobotan yang akan digunakan untuk GridLength tersebut. Opsi distribusi tertimbang juga dikenal sebagai ukuran star.
Nilai data yang disimpan oleh GridLength (Value dan GridUnitType) keduanya bersifat baca-saja. Jika Anda ingin mengubah nilai properti yang mengambil GridLength pada durasi, Anda harus membuat nilai baru menggunakan salah satu konstruktor dan mengganti nilai sebelumnya.
Ukuran bintang
Ukuran bintang adalah konvensi di mana GridLength memiliki nilai angka yang menentukan faktor tertimbang versus nilai GridLength lainnya. Setiap nilai GridLength yang menggunakan ukuran star membagi ruang yang tersedia, memperhitungkan faktor pembobotan, dan mengevaluasi setelah lebar tetap diterapkan. Jika tidak ada ukuran star yang memiliki faktor pembobotan, tinggi atau lebar dibagi rata di antaranya. Faktor pembobotan default adalah 1.
Tabel ini menyediakan beberapa contoh hasil ukuran star. Untuk contoh ini, asumsikan bahwa Grid induk memiliki lebar tetap 600, dan ada tiga kolom.
Kolom 0 | Kolom 1 | Kolom 2 | Hasil |
---|---|---|---|
100 | 100 | * | 100,100,400 |
100 | * | * | 100,250,250 |
100 | * | 4* | 100,100,400 |
Dalam kode, ukuran star setara dengan GridLength di mana IsStarbenar, GridUnitType adalah Star, dan Value adalah faktor tertimbang yang diterapkan.
Faktor pembobotan non-bilangan bulat diizinkan; misalnya, ".5*".
Ukuran otomatis
Ukuran otomatis mendistribusikan ruang secara merata berdasarkan ukuran konten yang berada dalam kolom atau baris. Logika yang tepat untuk ukuran otomatis diimplementasikan oleh kontrol atau kelas menggunakan nilai GridLength. Biasanya kelas tersebut adalah Grid, karena menginterpretasikan komponen RowDefinition dan ColumnDefinition-nya .
Catatan tentang sintaks XAML
Meskipun Anda dapat menentukan GridLength sebagai elemen objek, Anda tidak dapat menentukan nilai individual, seperti Nilai, sebagai atribut elemen objek tersebut. Parser XAML tidak mendukung pengaturan nilai atribut XAML untuk struktur ini. Sebagai gantinya, Anda harus menentukan nilai sebagai teks inisialisasi dalam GridLength. Untuk informasi selengkapnya tentang teks inisialisasi XAML, lihat panduan sintaks XAML.
Proyeksi dan anggota GridLength
Jika Anda menggunakan bahasa Microsoft .NET (C# atau Microsoft Visual Basic), atau ekstensi komponen Visual C++ (C++/CX), maka GridLength memiliki anggota non-data yang tersedia, dan anggota datanya diekspos sebagai properti baca-saja, bukan bidang. Lihat GridLength di Browser .NET API.
Jika Anda memprogram dengan C++/WinRT atau Windows Runtime C++ Template Library (WRL), maka hanya bidang anggota data yang ada sebagai anggota GridLength, dan Anda tidak dapat menggunakan metode utilitas atau properti proyeksi .NET. Kode C++ dapat mengakses metode utilitas serupa yang ada di kelas GridLengthHelper .
Tabel ini memperlihatkan properti dan metode yang setara yang tersedia di .NET dan C++.
Bidang
GridUnitType |
Nilai enumerasi GridUnitType yang memenuhi syarat bagaimana Nilai ditafsirkan sebagai ukuran. |
Value |
Ukuran untuk GridLength ini, yang belum tentu merupakan ukuran piksel. |