Arsip bulanan: April 2013

Cepat dan mudah: Pindahkan persegi panjang dengan menggunakan C# di App Windows Store

Filsafat blog saya secara keseluruhan adalah bahwa hal itu baik-baik saja untuk blog tentang lama, menetap mata pelajaran yang telah dibahas sampai mati di tempat lain.  Saya berasumsi topik ini adalah salah satu dari mereka, tapi aku blogging itu pula.

Saya telah bekerja pada sebuah jendela toko app dan saya di bagian mana yang harus saya lakukan beberapa menghidupkan.  Untuk tujuan ini, Saya telah mencari tahu bit dan potongan-potongan Windows menyimpan animasi app yang, ternyata, cukup dekat dengan, tapi tidak persis seperti, XAML berbasis animasi .NET (Aku masih datang ke genggaman dengan fakta bahwa WinRT <> .NET 🙂 ).

Pagi ini aku ingin mendapatkan pegangan pada drag dan drop operasi.  En rute yang, Saya mendapat macet bergerak persegi panjang sebaliknya :).  Berikut adalah kode yang bergerak persegi panjang ketika pengguna mengklik tombol:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              Matriks m = ct.Matriks;
   4:                = m.OffsetX 10;
   5:                = m.OffsetY 10;
   6:              CT.Matriks = m;
   7:              rectBig.RenderTransform = ct;

Kuncinya di sini adalah bahwa saya tidak bisa secara langsung mengubah OffsetX atau OffsetY.  Mungkin ada cara yang lebih pintar untuk melakukan hal ini (dan jika Anda tahu dan merasa seperti, Silahkan posting di komentar). 

Untuk melakukan hal ini, Saya perlu:

1. Dapatkan MatrixTransform dari persegi panjang (dengan pengecoran RenderTransform).

2. Mendapatkan matriks pria.

3. Mengubah the Matrix offset.

4. Menetapkan kembali matriks kembali ke MatrixTransform.

5. Menetapkan kembali MatrixTransform kembali ke persegi panjang.

Untuk menguji, Aku meletakkan persegi panjang dan tombol layar. Ketika saya klik tombol, logika di atas mengeksekusi dan bergerak persegi segera.

Di beberapa titik, Saya ingin untuk menghidupkan ini tapi saya tidak tahu bagaimana untuk mendapatkan DoubleAnimation untuk bekerja di atasnya (Storyboard.SetTargetProperty() misteri bagi saya di ini untuk waktu sedang).

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Menetapkan tinggi ListboxItems di suatu ListBox pemrograman untuk App Windows Store

Saya bekerja pada sebuah jendela toko aplikasi dan salah satu hal-hal yang ingin saya lakukan di app adalah menampilkan log yang menunjukkan pesan status dan tidbits informasi lain seperti pengguna bekerja hal-hal. Untuk tujuan ini, Saya menambahkan suatu ListBox sebagai berikut:

<ListBox x:Nama ="GameStateLog" HorizontalAlignment ="Pusat" Tinggi ="221" VerticalAlignment ="Atas" Lebar ="499" Padding ="0" Ukuran tulisan ="10">

 

C# kode untuk mengisi listbox pada saat runtime adalah sepanjang baris:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Negara permainan baru: menunggu pemain 1 Nama");

Ini bekerja baik-baik saja cukup, tapi UI menunjukkan jumlah gila padding di sekitar pesan individu seperti mereka ditambahkan. Itu masuk akal jika saya ingin pengguna akhir untuk dapat memilih item ini tapi tidak masuk akal ketika saya hanya ingin menunjukkan serangkaian menjalankan pesan log-pengguna tidak akan memilih ini, hanya melihat mereka. Anehnya sulit untuk menemukan cara mudah untuk melakukan ini dan, cara saya menemukan itu tidak selalu "mudah" tapi aku punya itu bekerja OK. Wawasan kunci berasal dari posting ini Sini (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) dari Bob Relyea. Bukannya menambahkan string ke koleksi item pada ListBox, Tambahkan ListBoxItems. Dengan menambahkan string, ListBox menciptakan ListBoxItem sendiri sendiri. Aku tidak bisa mempengaruhi apa-apa tentang ListBoxItem bahwa setelah fakta. Kode baru:

        swasta Batal AddGameStateLogMessage(string theMessage)
        {
            ListBoxItem li = baru ListBoxItem();
            Li.Konten = theMessage;
            Li.MaxHeight = 25;

            Ketebalan thisPadding = baru Ketebalan(5, 0, 5, 0);
            Li.Padding = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

 

Di sini saya menciptakan ListBoxItem's dan memasukkan mereka. Aku melepaskan kelebihan padding dengan menetapkan ketebalannya.

Hal ini cukup fleksibel karena aku berniat untuk melakukan beberapa warna coding untuk menyorot tertentu jenis pesan dan dengan langsung menambahkan ListBoxItems aku bisa gaya mereka cara apapun yang saya inginkan.

Semoga ini bisa membantu seseorang!

</akhir>

undefinedBerlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin