मासिक अभिलेख: अप्रैल 2013

त्वरित और आसान: एक आयत C# में एक विंडोज स्टोर App का उपयोग कर ले जाएँ

अपने समग्र ब्लॉग दर्शन है कि यह पुराने के बारे में ब्लॉग के लिए बिल्कुल ठीक है, बसे विषयों है कि कहीं और मौत को कवर किया गया है।  मुझे लगता है इस विषय उन लोगों में से एक है, लेकिन मैं ब्लॉगिंग कर रहा हूँ यह वैसे भी.

मैं एक खिड़की स्टोर app पर काम कर रहा है और मैं भाग में, कर रहा हूँ जहाँ मैं कुछ animating करने की ज़रूरत है।  यह अंत करने के लिए, मैं बिट्स बाहर figuring रहा है और windows के टुकड़े स्टोर app एनिमेशन जो, के रूप में इसे मुड़ता है, बंद काफी है, लेकिन वास्तव में नहीं की तरह, .NET में XAML आधारित एनिमेशन (मैं अभी भी सच है के साथ पकड़ वाली करने के लिए कि WinRT आ रहा हूँ <> .NET 🙂 ).

आज सुबह मैं एक संभाल पाने पर खींचें और ड्रॉप आपरेशनों के लिए चाहता था।  एन रूट करने के लिए कि, मैं फंस गया मिल गया एक आयत इसके बजाय नीचे चल रहा :).  यहाँ कोड है कि एक आयत ले जाता है जब उपयोगकर्ता एक बटन क्लिक करता है:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              मैट्रिक्स m = सीटी।मैट्रिक्स;
   4:              m.OffsetX   = 10;
   5:              m.OffsetY   = 10;
   6:              सीटी।मैट्रिक्स = m;
   7:              rectBig.RenderTransform = सीटी;

यहाँ चाल है कि मैं सीधे OffsetX या OffsetY परिवर्तित नहीं कर सकता।  वहाँ ऐसा करने का एक और अधिक चालाक रास्ता हो सकता (और यदि आप जानते हैं और लगता है जैसे, कृपया टिप्पणी में पोस्ट). 

आदेश में यह करने के लिए, मैं करने के लिए की आवश्यकता:

1. MatrixTransform आयत के हो जाओ (RenderTransform कास्टिंग द्वारा).

2. उस लड़के का मैट्रिक्स हो जाओ.

3. मैट्रिक्स ऑफसेट बदल.

4. मैट्रिक्स वापस MatrixTransform को पुन: असाइन करें.

5. MatrixTransform आयत को वापस पुन: असाइन करें.

यह परीक्षण करने के लिए, मैं एक आयत डाल दिया और स्क्रीन बटन. जब मैं ' बटन क्लिक करें, इसके बाद के संस्करण तर्क executes और आयत तुरंत ले जाता है.

कुछ बिंदु पर, मैं इस चेतन करने के लिए चाहते हैं, लेकिन मैं उस पर काम करने के लिए एक DoubleAnimation पाने के लिए पता नहीं है (Storyboard.SetTargetProperty() मेरे समय के लिए एक रहस्य इस पर किया जा रहा है).

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin

ListboxItems की ऊंचाई में कोई सूची बॉक्स प्रोग्राम के जरिए विंडोज स्टोर App के लिए सेट करना

मैं एक विंडोज स्टोर आवेदन पर काम कर रहा हूँ और चीजें मैं app में क्या करना चाहते हैं में से एक है एक लॉग स्थिति संदेशों और अन्य सूचनात्मक tidbits पता चलता है कि उपयोगकर्ता चीजें काम करता है के रूप में प्रदर्शित करें. यह अंत करने के लिए, मैं एक ListBox में निम्नानुसार जोड़ा:

<ListBox एक्स:नाम ="GameStateLog" HorizontalAlignment ="केंद्र" ऊंचाई ="221" VerticalAlignment ="शीर्ष" चौड़ाई ="499" Padding ="0" फ़ॉन्ट आकार ="10">

 

रनटाइम पर सूची बॉक्स को पॉप्युलेट करने के लिए सी # कोड की लाइनों के साथ था:

GameStateLog.Items.Insert(0, GameStateCounter     + ": नए राज्य खेल: खिलाड़ी के लिए इंतजार कर 1 नाम");

यह काफी ठीक से काम किया, लेकिन UI व्यक्तिगत संदेश के आसपास padding के एक पागल राशि दिखाया के रूप में वे जोड़ी गईं. यदि मैं अंत उपयोगकर्ताओं को इन आइटम्स का चयन करने में सक्षम होना चाहते हैं लेकिन समझ नहीं पड़ता जब मैं बस चल रहे संदेशों की एक श्रृंखला लॉग को दिखाने के लिए चाहते हैं-इन उपयोगकर्ताओं का चयन नहीं होगा कि समझ में आता है, बस उन्हें देखने. यह आश्चर्य की बात है एक आसान तरीका है यह करने के लिए खोजने के लिए मुश्किल था और यकीनन, जिस तरह मैंने पाया यह जरूरी "आसान" नहीं है, लेकिन मैं यह ठीक काम कर रहा है. महत्वपूर्ण अंतर्दृष्टि से इस पोस्टिंग आया यहाँ (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) बॉब Relyea से. ListBox पर आइटम संग्रह करने के लिए तार जोड़ने के बजाय, ListBoxItems जोड़ें. एक स्ट्रिंग को जोड़ कर, सूची बॉक्स अपने आप ListBoxItem अपने आप ही पैदा कर रहा था. मैं उस ListBoxItem के बारे में कुछ तथ्य के बाद को प्रभावित करने में सक्षम नहीं था. नए कोड है:

        निजी शून्य AddGameStateLogMessage(स्ट्रिंग theMessage)
        {
            ListBoxItem ली = नई ListBoxItem();
            ली।सामग्री = theMessage;
            ली।MaxHeight = 25;

            मोटाई thisPadding = नई मोटाई(5, 0, 5, 0);
            ली।Padding = thisPadding;

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

 

मैं ListBoxItem के यहाँ पैदा कर रहा हूँ और उन्हें डालने. मैं इसकी मोटाई की स्थापना करके अतिरिक्त पेडिंग हटाया.

यह बहुत लचीला है और सीधे ListBoxItems जोड़कर मैं उन्हें किसी भी तरह से मैं चाहता हूँ शैली को मिलता है मैं कुछ रंग कोडिंग के विशेष प्रकार के संदेश को हाइलाइट करने के लिए क्या करने का इरादा के रूप में.

आशा है कि यह किसी को मदद मिलती है!

</अंत>

undefinedमेरे ब्लॉग के लिए सदस्यता लें.

मेरे चहचहाना पर का पालन करें http://www.twitter.com/pagalvin