سؤال

أنا أكتب تطبيق إطار مدمج لنظام التشغيل Windows Mobile 6.5. سيتم بيع التطبيق في سوق WindowsPhone. للقيام بذلك، لا بد لي من دعم أحجام الشاشة المختلفة والقرارات ... ولكن كيف أفعل هذا؟ هل هناك أفضل ممارسة أم نحو ذلك؟ يمكنني استخدام الضوابط القياسية بشكل رئيسي ولكن صورة خلفية في Mainform ... هل يجب علي تخزينها بأي دقة وإظهارها ديناميكيا، اعتمادا على جهاز المستخدم الخاص بي؟

شكرا لاقتراحاتكم ومساعدة

توماس

هل كانت مفيدة؟

المحلول

سأبدأ في قول هذا موضوع مثير للجدل.

خذ My Persionaly هو أن تحدد نطاقات القرار / الأحجام المختلفة بشكل كبير وتوفر طبقة UI مختلفة يمكنك تبديلها عند اكتشاف تغيير حجمها من مجموعة واحدة إلى أخرى (قد لا يكون التبديل ديناميكيا متطلبات لك - في ذلك حالة فقط تحقق في وقت الحمل). من الواضح أن هذا النهج لا معنى له إذا كانت النطاقات التي تحددها محدودة للغاية وتشبه بعضها البعض، كما في نفس النطاق يجب أن يكون تطبيقك قادرا على تغيير حجمه لائق.

محاولة معالجة جميع القرارات المحتملة مع نفس طبقة UI قد تبدو فكرة رائعة ولكن يمكن أن تكون وصفة للكوارث. قد تحصل عليه في العمل، لكن من المحتمل جدا أن ينتهي من المرجح جدا بكرة بخطوات، مع مجموعة من البيانات المثلى التي تبحث عن أحجام البكسل، قم بتغيير حجم الضوابط وتحريك الأشياء حولها.

إذا كنت تفكر في الأمر، فإن خرائط Google (لأحد، ولكن فكر في أي تطبيق iPhone) لا تخدم نفس المستخدم على الهاتف المحمول وعلى متصفح سطح المكتب الخاص بك وما إلى ذلك. إذا كان هذا هو الفرق في الحجم نحن نتحدث عن (دقة موبايل مقابل Desktop-desktop)، فستضطر إلى لفة طبقات UI مختلفة حسب اقتراحي أعلاه.

الكأس المقدسة هو ما يسمى التخطيط السائل - WPF يمكن أن يساعد في ذلك ولكن لأنك في إطار مدمج استبعد.

سألت مؤخرا سؤال متشابه للغاية - يمكنك إلقاء نظرة عليه هنا إذا كنت تريد قراءة آراء مختلفة.

نصائح أخرى

هذه تشويلة. لقد كان لدي نتائج معقولة مع خطة الجهد المنخفضة التالية. (هذا هو Winform الموجهة، راجع للشغل)

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

يبدأ هذا فقط في النظر سخيفة إذا كان القرار أكبر بكثير مما كان متوقعا.
ملاحظة يمكنك العثور على حجم الشاشة من النظام الأساسي الحالي عبر الشاشة. PrimaryScreen.

لقد بنيت مؤخرا تطبيقا صغيرا، لمجرد تجربة الأمور. كنت بحاجة لعرض صورة خلفية، لذلك لم أستطع استخدام عناصر التحكم المدمجة مثل التسمية وما إلى ذلك لأنها لا تدعم خلفية شفافة.

انتهى بي الأمر في رسم الواجهة بأكملها في حدث الطلاء للنموذج، باستخدام GDI +.

تحولت معالجة قرارات الشاشة المختلفة بسيطة للغاية: واجهة النماذج الأولية لشاشة 96DPI العادية (الأصغر) ثم يتم تحجيم جميع الأحجام باستخدام عامل محسوب ك 96 / Actual_DPI. يمكنك استرداد إعداد DPI الفعلي للشاشة باستخدام الكود الموجود هنا (قديم قليلا ولكن لا يزال يعمل). ثم اختبر الطلب مع جميع القرارات التي يقدمها المحاكيات وعثرت على أي مشاكل.

التحذير: "لقد أهدرت" الجزء السفلي من الشاشة بحيث يكون هناك حاجة إلى شيء خاص لمعالجة الشاشات المربعة والتوجهات المناظر الطبيعية / البورتريه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top