المحفوظات الشهرية: نيسان/أبريل 2013

سريعة وسهلة: تحريك مستطيل باستخدام C# في تطبيق مخزن Windows

فلسفتي بلوق عموما أنه ما يرام تماما بلوق عن القديم, تسوية المواضيع التي تم تغطيتها حتى الموت في مكان آخر.  افترض أن هذا الموضوع واحد من هؤلاء, ولكن أنا المدونات أنها على أي حال.

لقد تم العمل على نافذة المتجر وأنا في الجزء حيث تحتاج إلى القيام ببعض الحركات.  وتحقيقا لهذه الغاية, لقد تم معرفة بت وقطع من windows تخزين التطبيق الرسوم المتحركة التي, كما اتضح, هي قريبة جداً, ولكن ليس بالضبط مثل, XAML على أساس الرسوم المتحركة في.NET (أنا لا تزال قادمة على السيطرة على الحقيقة أن وينرت <> .صافي 🙂 ).

هذا الصباح كنت أرغب في الحصول على مقبض على سحب وإسقاط عمليات.  في الطريق إلى أن, أنا حصلت متورطة في تحريك مستطيل بدلاً من ذلك :).  هنا هو التعليمات البرمجية التي ينتقل مستطيل عندما ينقر المستخدم فوق زر:

   1:   
   2:              ط م ماتريكسترانسفورم = (ماتريكسترانسفورم)rectBig.RenderTransform;
   3:              مصفوفة m = ct.مصفوفة;
   4:                = m.OffsetX 10;
   5:                = m.OffsetY 10;
   6:              ct.مصفوفة = m;
   7:              rectBig.RenderTransform = ct;

الحيلة هنا أن لا أستطيع تغيير مباشرة أوفسيتكس أو أوفسيتي.  قد تكون هناك طريقة أكثر ذكية للقيام بذلك (وإذا كنت تعرف وتشعر مثل, الرجاء نشر في التعليقات). 

ولكي نفعل هذا, بحاجة إلى:

1. الحصول على ماتريكسترانسفورم المستطيل (بصب رينديرترانسفورم).

2. الحصول على المصفوفة من هذا الرجل.

3. تغيير الإزاحة للمصفوفة.

4. إعادة تعيين المصفوفة مرة أخرى إلى ماتريكسترانسفورم.

5. إعادة تعيين ماتريكسترانسفورم العودة إلى المستطيل.

لاختبار, وضع مستطيل، والزر الشاشة. عند النقر فوق الزر, ينفذ المنطق أعلاه وينتقل المستطيل فورا.

في بعض نقطة, أود أن تحريك هذا ولكن ليس لدى أي فكرة عن كيفية الحصول دوبلينيميشن للعمل على ذلك (Storyboard.SetTargetProperty() ويجري لغزا بالنسبة لي في هذه المرة).

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

تعيين ارتفاع ليستبوكسيتيمس في ListBox برمجياً للمتجر ويندوز

أنا أعمل على تطبيق مخزن windows وهو أحد الأشياء التي أريد القيام به في التطبيق عرض سجل يوضح مركز الرسائل والحكايات الإعلامية الأخرى كما يعمل المستخدم الأشياء. وتحقيقا لهذه الغاية, وأضفت ListBox كما يلي:

<ListBox x:اسم ="جاميستاتيلوج" هوريزونتالاليجنمينت ="مركز" الارتفاع ="221" فيرتيكالاليجنمينت ="أعلى" العرض ="499" الحشو ="0" FontSize ="10">

 

وكان رمز C# لملء مربع القائمة في وقت التشغيل على غرار:

GameStateLog.Items.Insert(0, جاميستاتيكونتير     + ": الدولة لعبة جديدة: في انتظار لاعب 1 الاسم");

هذا عملت غرامة ما يكفي ولكن واجهة المستخدم تبين كمية مجنون الحشو حول الرسائل الفردية كما أنها أضيفت. معنى إذا أريد المستخدمين النهائيين لتكون قادرة على تحديد هذه العناصر ولكن لا معنى له عندما أريد فقط أن تظهر سلسلة تشغيل رسائل سجل – لن يقوم المستخدمون بتحديد هذه, مجرد الاطلاع عليها. أنه من الغريب من الصعب العثور على طريقة سهلة للقيام بذلك، ويمكن القول أن, الطريقة التي وجدت أنها ليست بالضرورة "سهلة" ولكن حصلت عليه يعمل موافق. جاءت فكرة رئيسية من هذا النشر هنا (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) من ريليا بوب. بدلاً من إضافة السلاسل إلى مجموعة عناصر في ListBox, إضافة ليستبوكسيتيمس. عن طريق إضافة سلسلة, وكان إنشاء ListBox ليستبوكسيتيم الخاصة به بمفردها. لم أكن قادرة على أن تؤثر على أي شيء حول هذا ليستبوكسيتيم بعد وقوعها. رمز جديد:

        القطاع الخاص باطلة أدجاميستاتيلوجميساجي(السلسلة ثيميساجي)
        {
            ليستبوكسيتيم لي = الجديد ليستبوكسيتيم();
            لي.المحتوى = ثيميساجي;
            لي.ماكسهيت = 25;

            سمك ثيسبادينج = الجديد سمك(5, 0, 5, 0);
            لي.الحشو = ثيسبادينج;

            GameStateLog.Items.Insert(0,لي);
        }

 

هنا أنا خلق في ليستبوكسيتيم وإدخالها. إزالة الحشو الزائد بوضع سمكة.

هذه مرنة جداً كما أنني أنوي القيام ببعض لون الترميز لتسليط الضوء على أنواع معينة من الرسائل وعن طريق إضافة مباشرة ليستبوكسيتيمس احصل على أسلوب لهم أي الطريقة التي أريدها.

أمل أن يساعد هذا شخص!

</نهاية>

undefinedالاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin