คลังเก็บรายเดือน: เมษายน 2013

ง่าย และรวดเร็ว: สี่เหลี่ยมโดยใช้ C# ใน Windows เก็บ App ย้าย

ปรัชญาของฉันบล็อกโดยรวมคือ ว่า มันเป็นอย่างดีเพื่อบล็อกเกี่ยวกับอายุ, เรื่องที่มีครอบคลุมอื่นตายแล้ว  ผมถือว่า หัวข้อนี้เป็นหนึ่งในบรรดา, แต่บล็อกมันต่อไป.

ฉันได้ทำงานบนเป็นหน้าต่างที่เก็บ app และฉันในส่วนที่ต้องการบางอย่างทำให้เคลื่อนไหว  เพื่อการนี้, ฉันได้รับหาบิต และชิ้นส่วนของ windows เก็บ app ภาพเคลื่อนไหวที่, เป็นดังปรากฎว่า, มีค่อนข้าง, แต่ไม่เหมือน, ภาพเคลื่อนไหวใช้ XAML ใน.NET (ฉันกำลังยังมากับความจริงที่ WinRT <> .เน็ต 🙂 ).

เช้านี้ผมต้องการได้รับการจัดการลาก และวางการดำเนินงาน  เส้นทางน้ำที่, ผมมี bogged ลงย้ายสี่เหลี่ยมแทน :).  นี่คือรหัสที่เลื่อนสี่เหลี่ยมเมื่อผู้ใช้คลิกที่ปุ่ม:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              เมทริกซ์ m = ctเมตริกซ์;
   4:              m.OffsetX  = 10;
   5:              m.OffsetY  = 10;
   6:              ctเมตริกซ์ = m;
   7:              rectBig.RenderTransform = ct;

เคล็ดลับที่นี่เป็นที่ผมโดยตรงแล้ว OffsetX หรือ OffsetY  อาจมีวิธีฉลาดมากทำนี้ (และถ้าคุณรู้ และรู้สึก, กรุณาลงข้อคิดเห็น). 

การทำเช่นนี้, ฉันต้องการ:

1. ได้รับ MatrixTransform ของสี่เหลี่ยม (โดยหล่อ RenderTransform).

2. เมตริกซ์ของผู้ชายที่ได้รับ.

3. เปลี่ยนปรับค่าของเมตริกซ์.

4. กำหนดเมทริกซ์กลับไป MatrixTransform.

5. กำหนด MatrixTransform กลับไปสี่เหลี่ยมผืนผ้า.

การทดสอบ, ผมใส่สี่เหลี่ยม และปุ่มหน้าจอ. เมื่อคลิกปุ่ม, ตรรกะข้างต้นดำเนินการ และย้ายเหลี่ยมทันที.

ในบางจุด, อยากจะเคลื่อนไหวนี้ แต่ฉันมีความคิดวิธีการรับ DoubleAnimation การทำงานนั้น (Storyboard.SetTargetProperty() ลึกลับกับฉันนี้เป็นครั้ง).

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin

ตั้งความสูงของ ListboxItems ใน ListBox โดยทางโปรแกรมสำหรับ Windows ที่เก็บ App

ฉันทำงานบนโปรแกรมประยุกต์ที่เก็บ 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 โดยตรง ผมไปแบบพวกเขามี.

หวังนี้ช่วยคน!

</สิ้นสุด>

undefinedสมัครสมาชิกไปยังบล็อกของฉัน.

ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin