Aylık Arşivler: Nisan 2013

Hızlı ve kolay: C# kullanarak bir Windows Store App bir dikdörtgeni taşımak

Benim genel blog felsefe gayet eski hakkında blog olmasıdır, başka bir yerde ölene kadar örtülü olması konular yerleşti.  Bu konuda onlardan biri varsayalım., Ama ben bloglamaya o her durumda.

Bir pencere mağaza uygulaması üzerinde çalışıyoruz ve ben vasıl belgili tanımlık bölüm nereye bazı animasyon yapmanız gereken.  Bu amaçla, Ben bit endam ve windows parçaları store app animasyon hangi, Anlaşılan o ki, oldukça olduğunu, Ama tam olarak değil gibi, .NET XAML tabanlı animasyonlar (Hala kulpları ile aslında o WinRT geliyorum <> .NET 🙂 ).

Bu sabah ele almak üzerinde sürükle ve bırak işlemlerini istedim.  Hedefe doğru o, Bunun yerine bir dikdörtgen aşağı hareket saplanmış :).  Kullanıcı bir düğmeyi tıklattığında bir dikdörtgen hareket eden kod aşağıdadır:

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

Püf, ben doğrudan OffsetX veya OffsetY değiştiremezsiniz olduğunu.  Bunu yapmanın daha akıllı bir yol olabilir. (ve biliyorum ve hissetmek gibi, Lütfen yorum sonrası). 

Bunu yapabilmek için, Gerek:

1. MatrixTransform dikdörtgen elde (RenderTransform döküm tarafından).

2. O adam matris olsun.

3. Matrix'ın uzaklıklar değiştirme.

4. Matrixe geri MatrixTransform yeniden atama.

5. Dikdörtgen için MatrixTransform yeniden atama.

Bunu test etmek için, Ben bir dikdörtgen koymak ve ekran düğmesi. Ne zaman I tıkırtı belgili tanımlık düğme, Yukarıdaki mantığı yürütür ve hemen dikdörtgeni taşır.

Bir noktada, Bu animasyon eklemek istiyorum ama DoubleAnimation üzerinde çalışmak için nasıl bilmiyorum (Storyboard.SetTargetProperty() kez bu benim için bir sır mı).

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

ListboxItems yüksekliği bir liste kutusunda program aracılığıyla Windows Store App için ayarlama

Windows depolama uygulaması üzerinde çalışıyorum ve app yapmak istediğim şeyleri biri kullanıcı şeyler çalışırken durum iletilerini ve diğer bilgi çerez gösteren bir günlüğü görüntülemek. Bu amaçla, Aşağıdaki gibi bir liste kutusu eklendi:

<ListBox x:Adı ="GameStateLog" HorizontalAlignment ="Merkezi" Yükseklik ="221" VerticalAlignment ="Sayfanın Üstü" Genişlik ="499" Doldurma ="0" FontSize ="10">

 

Liste kutusu, çalışma zamanında doldurmak için C# kod satırları birlikte yapıldı.:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Yeni oyun devlet: oyuncu için bekliyor 1 adı");

Bu yeterince iyi çalıştı ama eklendikleri gibi UI iletileri tek tek çevresindeki doldurma çılgın bir miktar gösterdi. Eğer ben bu öğeleri seçmek son kullanıcıların istiyorum ama mantıklı değildir zaman çalışan bir dizi günlük ileti göstermek istiyorum-kullanıcı bunlar seçme değil mantıklı, Sadece onları görmek. Garip bir şekilde bunu yapmak için kolay bir yol bulmak zor ve tartışmalı, ı kurmak o yolu mutlaka "kolay" yok ama Tamam çalıştırdım. Belgili tanımlık anahtar kavrama bu mesaj geldi Burada (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) Bob Relyea. ListBox öğeleri derlemesine dizeleri eklemek yerine, ListBoxItems Ekle. Bir dize ekleyerek, liste kutusu, kendi kendi ListBoxItem oluşturmaktı. Ben o ListBoxItem hakkında hiçbir şey gerçeği sonra etkiler mümkün değildi. Yeni kodu:

        Özel geçersiz AddGameStateLogMessage(dize Henüz)
        {
            ListBoxItem li = Yeni ListBoxItem();
            li.İçerik henüz =;
            li.MaxHeight = 25;

            Kalınlığı thisPadding = Yeni Kalınlığı(5, 0, 5, 0);
            li.Doldurma thisPadding =;

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

 

Burada ListBoxItem'ın yaratıyorum ve onları ekleme. Ben aşırı doldurma kalınlığı ayarlayarak kaldırıldı.

Bu gibi bazı renk belirli ileti türlerini vurgulamak için kodlama yapmak niyetinde ve doğrudan ListBoxItems ekleyerek onları istediğim herhangi bir şekilde stil almak oldukça esnek.

Bu kimse yardımcı olur!

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin