سؤال

أساسا ما أريد القيام به هو السماح للمستخدم بالكتابة في قيمة السلسلة ولديك مربع القائمة قم بالتمرير إلى العنصر الذي يطابق النص الذي كتبوه (أو أول مباراة).

إذا كنت أستخدم طريقة .scrollintoview ()، فإن المشكلة هي أنه يضع العنصر في Teh Seark من المنطقة المرئية إذا كان العنصر مزيدا من الأسفل في القائمة من موضع التمرير الحالي، وهو في الأعلى إذا كان أعلى في القائمة من موضع التمرير الحالي. أريد أن أجعلها متسقة من خلال جعلها العنصر العلوي في القائمة (ما لم يكن الأمر يتعلق بالطبع لا يمكن أن يكون بسبب كونه أحد "الصفحة الأخيرة" من العناصر).

لقد حاولت مزيفة ذلك عن طريق تحديد العنصر الذي هو عاشر مزيد من الأسفل في القائمة حيث x هو عدد العناصر المرئية. هذا يعمل عند النزول ولكن يكسر عند العودة. ولم أتمكن من تحديد الفهرس الذي يوجد حاليا واحد في أعلى نقطة مرئية في قائمتي.

تحتوي صناديق قائمة WinForms على ملكية .topInterex التي تشير بالضبط ما أبحث عنه، لكنني لم أتمكن من العثور على مكافئ WPF. أي شخص هناك فكرة عن كيفية إنجاز هذا؟

شكرا مقدما!

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

المحلول

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

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