Saya bekerja pada sebuah tingkap kedai aplikasi dan salah satu daripada perkara-perkara yang saya ingin lakukan dalam aplikasi memaparkan log yang menunjukkan mesej status dan perkara maklumat lain seperti kerja-kerja pengguna perkara-perkara. Untuk tujuan ini, Saya menambah ListBox sebagai berikut:
<ListBox x:Nama ="GameStateLog" HorizontalAlignment ="Pusat" Ketinggian ="221" VerticalAlignment ="Top" Lebar ="499" Padding ="0" FontSize ="10">
C # kod untuk mengisi listbox di runtime adalah sepanjang garis:
GameStateLog.Items.Insert(0, GameStateCounter + ": Negeri permainan baru: menunggu bagi pemain 1 Nama");
Ini bekerja denda cukup tetapi UI menunjukkan sejumlah gila pad sekitar mesej individu kerana mereka telah ditambah. Yang masuk akal jika saya mahu pengguna akhir untuk dapat memilih barang-barang tetapi tidak masuk akal apabila saya hanya mahu menunjukkan siri berjalan mesej log - pengguna tidak akan memilih ini, hanya melihat mereka. Ia adalah pelik sukar untuk mencari cara yang mudah untuk melakukan ini dan boleh dikatakan, cara yang saya dapati ia tidak semestinya "mudah" tetapi saya dapat bekerja OK. Wawasan utama datang dari posting ini di sini (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) dari Bob Relyea. Sebaliknya menambah tali untuk koleksi Item pada ListBox, Tambah ListBoxItems. Dengan menambah rentetan, ListBox yang mencipta sendiri ListBoxItem sendiri. Saya tidak mampu menjejaskan apa-apa mengenai ListBoxItem itu selepas fakta. Kod baru:
swasta membatalkan AddGameStateLogMessage(rentetan theMessage) { ListBoxItem yang = baru ListBoxItem(); li.Content = theMessage; li.MaxHeight = 25; Ketebalan thisPadding = baru Ketebalan(5, 0, 5, 0); li.Padding = thisPadding; GameStateLog.Items.Insert(0,li); }
Di sini saya membuat ListBoxItem's dan memasukkan mereka. Saya dibuang padding yang berlebihan dengan menetapkan ketebalan.
Ini adalah agak fleksibel kerana saya bercadang untuk melakukan beberapa kod warna untuk menyerlahkan jenis tertentu mesej dan dengan terus menambah ListBoxItems saya dapat gaya mereka apa-apa cara yang saya mahu.
Harap ini membantu seseorang!
</akhir>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin