ฉันทำงานบนโปรแกรมประยุกต์ที่เก็บ windows และหนึ่งในสิ่งที่อยากทำใน app จะแสดงแฟ้มบันทึกที่แสดงข้อความสถานะและ tidbits อื่น ๆ ให้ข้อมูลเป็นผู้ทำกิจกรรม. เพื่อการนี้, เพิ่มกล่องรายการดังนี้:
<กล่อง x:ชื่อ ="GameStateLog" HorizontalAlignment ="ศูนย์" ความสูง ="221" VerticalAlignment ="ด้านบน" ความกว้าง ="499" เซลล์ ="0" FontSize ="10">
รหัส C# เพื่อสร้างกล่องรายการที่ใช้งานจริงได้พร้อม:
GameStateLog.Items.Insert(0, GameStateCounter + ": สถานะเกมใหม่: รอเล่น 1 ชื่อ");
นี้ทำงานออกมาละเอียดพอ แต่ UI แสดงจำนวนระยะห่างสถานแต่ละข้อความบ้ามีเพิ่ม. ที่เข้าใจ ถ้าฉันต้องผู้ใช้สามารถเลือกรายการเหล่านี้ไม่ถูกต้องเมื่อฉันต้องการแสดงข้อความบันทึกชุดทำงาน-ผู้ใช้จะไม่เลือกเหล่านี้, เพียงแค่ดูพวกเขา. มันแพงกว่ายากหาวิธีง่าย ๆ นี้ และว่า, วิธีผมพบว่ามันไม่จำเป็นต้อง "ง่าย" แต่ผมก็ทำงานตกลง. เข้าใจหลักมาจากการลงรายการบัญชีนี้ ที่นี่ (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) จาก Bob Relyea. แทนการเพิ่มสายอักขระเพื่อเก็บสินค้าบนกล่อง, เพิ่ม ListBoxItems. โดยการเพิ่มสายอักขระ, กล่องสร้าง ListBoxItem ของตนเองนั้น. ฉันไม่สามารถที่จะส่งผลกระทบต่ออะไรเกี่ยวกับ ListBoxItem ที่หลังจากข้อเท็จจริง. รหัสใหม่:
ส่วนตัว โมฆะ AddGameStateLogMessage(สายอักขระ theMessage) { ลิ ListBoxItem = ใหม่ ListBoxItem(); liเนื้อหา = theMessage; liMaxHeight = 25; ความหนา thisPadding = ใหม่ ความหนา(5, 0, 5, 0); liเซลล์ = thisPadding; GameStateLog.Items.Insert(0,li); }
นี่ฉันกำลังสร้างของ ListBoxItem และใส่พวกเขา. ผมเอาระยะห่างส่วนเกิน โดยการกำหนดความหนาของ.
นี้มีความยืดหยุ่นสวยผมตั้งใจทำสีเขียนโค้ดเพื่อเน้นข้อความชนิดใด และ โดยการเพิ่ม ListBoxItems โดยตรง ผมไปแบบพวกเขามี.
หวังนี้ช่วยคน!
</สิ้นสุด>
ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin