Windows Phone XAML: كيفية منع الصفحة من التمرير عند الشرائح لوحة المفاتيح

StackOverflow https://stackoverflow.com//questions/24013583

سؤال

أود إنشاء نظام التشغيل Windows Phone 8.1 Silverlight / XAML UI الذي يحتوي على مربع بحث مشابه لتلك المستخدمة في كورتانا.يجب أن يكون مربع النص في أسفل الصفحة والتمرير باستخدام لوحة المفاتيح، بمجرد أن يحصل على التركيز.لا ينبغي أن تتحرك بقية صفحتي على الإطلاق.يقوم كورتانا واجهة المستخدم بذلك بالضبط، لكنني لم أتمكن من إعادة إنشاء هذا السلوك في تطبيقي.لقد وجدت حلول تتطلب تغيير حجم حاويات UI يدويا عندما يحصل مربع النص على التركيز، ولكن يتطلب ذلك تقدير حجم لوحة المفاتيح، والتي يمكن أن تتغير مع دقة شاشة مختلفة وتنتج أيضا رسوم متحركة قصيرة قبل العودة إلى مكانها.فكيف من الممكن منع محتوى صفحاتي من التمرير لأعلى، عندما تنزلق لوحة المفاتيح في؟

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

المحلول

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

لديك حق الوصول إلى متى تعرض منطقة لوحة المفاتيح / تختبئ ( windows.ui.viewmanagement.inputpane.inputpaneshowing [الاختباء] ) ويمكن أن يعرف ما سيكون المستطيل المستحرات. باستخدام هذا الحدث قد تكون قادرا على فعل بعض الأشياء هناك، ولكن طالما أن UI هو جزء من الشجرة البصرية الرئيسية، فإن تطبيقك سيظل تمرير.

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

نصائح أخرى

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

شاهد التفاصيل / رمز هنا: كيفية تحديد إزاحة لوحة المفاتيح

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