Windows Phone XAML: كيفية منع الصفحة من التمرير عند الشرائح لوحة المفاتيح
-
21-12-2019 - |
سؤال
أود إنشاء نظام التشغيل Windows Phone 8.1 Silverlight / XAML UI الذي يحتوي على مربع بحث مشابه لتلك المستخدمة في كورتانا.يجب أن يكون مربع النص في أسفل الصفحة والتمرير باستخدام لوحة المفاتيح، بمجرد أن يحصل على التركيز.لا ينبغي أن تتحرك بقية صفحتي على الإطلاق.يقوم كورتانا واجهة المستخدم بذلك بالضبط، لكنني لم أتمكن من إعادة إنشاء هذا السلوك في تطبيقي.لقد وجدت حلول تتطلب تغيير حجم حاويات UI يدويا عندما يحصل مربع النص على التركيز، ولكن يتطلب ذلك تقدير حجم لوحة المفاتيح، والتي يمكن أن تتغير مع دقة شاشة مختلفة وتنتج أيضا رسوم متحركة قصيرة قبل العودة إلى مكانها.فكيف من الممكن منع محتوى صفحاتي من التمرير لأعلى، عندما تنزلق لوحة المفاتيح في؟
المحلول
لا توجد طريقة رائعة حقا للقيام بذلك. كورتانا هو نظام واجهة المستخدم وأكثر من مساحة التطبيق الحالية. بالنسبة للتطبيق الخاص بك، يفترض أن أي UI في تطبيقك هو جزء من التطبيق بأكمله. للحصول على إدخال حيث تظهر لوحة مفاتيح البرنامج، يتم تمرير محتوى التطبيق إلى طريقة العرض لضمان عدم فقد السياق. هذا هو السلوك الافتراضي الذي لا يمكنك تغييره حقا.
لديك حق الوصول إلى متى تعرض منطقة لوحة المفاتيح / تختبئ (
شيء واحد يمكنك أن تجربه هو وضع منطقة النص هذه في طبقة منبثقة ليس جزء من التطبيق الرئيسي الخاص بك UI (مما يعني أنه غير واضح لأي شجرة مرئية). النوافذ النوافذ المنبثقة غير الفائقة لا تشارك في سلوك التمرير الرئيسي. إذا قمت بذلك، إلى جانب الاستماع عند إظهار جزء الإدخال / إخفاءك قد تكون قادرا على تحقيق ما تريد.
نصائح أخرى
لا توجد طريقة نظيفة للغاية للقيام بذلك، ولكن هناك حلول لا تزال تعمل في Silverlight أيضا.عند فتح لوحة المفاتيح، ستحفير TranslatTransForm على الإطار التذرير.لذلك عندما تحصل على التركيز على عنصر، اشترك في التخطيطات للصفحة، وتحقق من قيم التحويل.
شاهد التفاصيل / رمز هنا: كيفية تحديد إزاحة لوحة المفاتيح