(विंडोज फोन 8.1) से स्क्रॉल को फिर से शुरू करते समय सूची बॉक्स शीर्ष पर कूदता है मेरे ऐप में, मेरे पास एक सूची बॉक्स के साथ एक मुख्य पृष्ठ है। उसी पृष्ठ पर नेविगेट करते समय नेविगेशन कैशमोड को राज्य को संरक्षित करने के लिए आवश्यक सेट किया जाता है।अंतिम स्थिति
public MainPage()
{
this.InitializeComponent();
this.DataContext = this;
// cache page
this.NavigationCacheMode = NavigationCacheMode.Required;
}
तो जब मैं एक पृष्ठ पर जाने के लिए और वापस मेरी mainpage प्रत्येक भाग को करने के लिए आते ही के रूप में मैं इसे छोड़ दिया लग रहा है। सूची बॉक्स भी कोरेंट स्थिति में है। लेकिन जब भी मैं इसे छूता हूं, यह स्क्रॉल करने से पहले शीर्ष पर कूद जाएगा ...
मैं इसे कैसे बना सकता हूं ताकि पहले शीर्ष पर जाने से पहले स्क्रॉलिंग फिर से शुरू हो जाए?
संपादित करें: हल
लिस्टबॉक्स तरहलगता WP8.1 में, बजाय bugged है उपयोग ListView!
मुझे यह बग भी मिल रहा है। वर्चुअलाइज्ड पैनल का उपयोग करने का कोई तरीका है, लेकिन मैन्युअल रूप से स्क्रॉल स्थिति को पुनर्स्थापित करें? –
हां यह संभव है, लेकिन दुर्भाग्य से यह काफी प्रयास की जरूरत है। सबसे पहले आपको स्क्रॉलव्यूयर (http://msdn.microsoft.com/en-us/library/bb613579(v=vs.110).aspx का अंत) खोजने के लिए VisualTree को स्कैन करना होगा जो सूची समाप्त करने के बाद ही काम करता है । स्क्रॉलव्यूयर प्राप्त करने के बाद आप क्षैतिज/लंबवत ऑफसेट निकाल सकते हैं और इसे सहेज सकते हैं। उस पृष्ठ पर लौटने पर, आपको VisualTree को फिर से स्कैन करना होगा, स्क्रॉलव्यूअर प्राप्त करने के बाद और सूची सामग्री प्रदान की जाती है, आप अपनी सहेजी गई स्थिति (स्क्रॉलव्यूअर.ChangeView) पर स्क्रॉल कर सकते हैं। मुझे अब तक प्रतिपादन का इंतजार करने का कोई अच्छा तरीका नहीं मिला:/ – eberthold
यह समाधान तब तक काम करता है जब तक नेविगेशन कैशमोड अक्षम पर सेट हो। बेशक, अब यह अक्षम है कि आपको किसी भी यूआई गुणों को मैन्युअल रूप से ट्रैक करना होगा जिन्हें आप जारी रखना चाहते हैं। मैंने कैशिंग के साथ इस तकनीक का उपयोग करने का कोई तरीका नहीं निकाला है, क्योंकि ListView लोड पर नहीं कूदता है, लेकिन जब आप स्क्रॉल करने के लिए इसे फिर से स्पर्श करते हैं। –