Saya menggunakan DataGrids di XAML (bukan Silverlight) dengan kolom yang dapat diubah ukurannya, DataGrid akan meluas jika pengguna mengubah ukuran layar.
Saat ini jika lebar semua kolom datagrid kurang dari lebar datagrid saya mendapatkan tambahan "kolom" muncul yang tidak dapat diklik dan tidak ada gunanya.
Adakah yang tahu bagaimana membuat satu kolom selalu berubah ukuran untuk mengisi semua ruang yang tersisa?
AutoGenerateColumns="True"
?<DataGrid AutoGenerateColumns="True" ColumnWidth="*" ItemsSource={Binding} />
ColumnWidth="*"
pada DataGrid danWidth="*"
pada kolom individu memiliki efek yang diinginkanPastikan datagrid Anda telah
Width
diatur ke sesuatu seperti{Binding Path=ActualWidth, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window,AncestorLevel=1}}
.Seperti itu, pengaturan
Width="*"
atribut Anda padaDataGrid.Columns/DataGridXXXXColumn
elemen harus berfungsi.sumber
Seperti disebutkan, ini
ColumnWidth="*"
bekerja dengan sangat baik untuk datagrid di XAML.Saya menggunakannya dalam konteks ini:
sumber
Atur
Width
properti kolom menjadi lebar proporsional seperti*
sumber
2 Cent saya ->
Sangat terlambat ke pesta
DataGrid -> Kolom -> Lebar = "*" hanya berfungsi jika penampung induk DataGrid memiliki lebar tetap.
contoh: saya meletakkan DataGrid di Grid -> Kolom yang lebarnya = "Otomatis" lalu Lebar = "*" di DataGrid tidak berfungsi tetapi jika Anda mengatur Grid -> Lebar Kolom = "450" berarti tetap maka berfungsi dengan baik
sumber
Putaran lain pada tema yang sama:
sumber
Saya menambahkan HorizontalAlignment = "Center" (Default-nya adalah "Strech") dan itu memecahkan masalah saya karena itu membuat datagrid hanya selebar yang dibutuhkan. (Menghapus pengaturan Lebar datagrid jika Anda memilikinya.)
sumber
Ini tidak akan memperluas kolom terakhir dari kisi xaml untuk mengambil ruang yang tersisa jika
AutoGeneratedColumns="True"
.sumber
setel lebar SATU kolom ke nilai apa pun, yaitu lebar = "*"
sumber
Bagi mereka yang mencari solusi C #:
Jika Anda memerlukan alasan tertentu untuk mengaktifkan "AutoGeneratedColumns", satu hal yang dapat Anda lakukan adalah menentukan lebar semua kolom kecuali yang ingin Anda ubah ukurannya secara otomatis (tidak akan mengambil ruang yang tersisa , tetapi akan mengubah ukurannya ke konten sel ).
Contoh (dgShopppingCart adalah DataGrid saya):
Bagi saya ini berfungsi sebagai solusi karena saya perlu mengubah ukuran DataGrid ketika pengguna memaksimalkan Window.
sumber