2010-07-18 9 views
5

यदि मैं किसी भी पेज पर वेबब्रोसर नियंत्रण रखता हूं, तो पेज अब WebBrowser के अंतर्गत हेरफेर ईवेंट का जवाब नहीं देता है। पृष्ठ के अन्य क्षेत्र ठीक काम करते हैं।विंडोज फोन 7 वेब ब्रोसर नियंत्रण मैनिपुलेशन घटनाओं को निगलता है?

यह पृष्ठ पर OnManipulationCompleted ओवरराइड करके आसानी से पुष्टि की जाती है, फिर पृष्ठ पर वेबब्रोसर नियंत्रण रखती है। WebBrowser पर स्वाइप करने का प्रयास करें, और OnManipulationCompleted कभी नहीं कहा जाता है।

मैं वेबब्रोसर को IsHitTestVisible=false पर सेट नहीं कर सकता क्योंकि मुझे लिंक पर क्लिक करने में सक्षम होना चाहिए। लेकिन मैं चाहता हूं कि पेज बाएं/दाएं स्वाइप का जवाब दे।

किसी को भी कोई उज्ज्वल विचार है? या पता है कि यह वर्तमान रिलीज में एक बग है?

+0

Gulp से पढ़ने के पूरी तरह से अलग कर रहे हैं, इस बात की पुष्टि। मैंने वेब ब्राउजर के पीछे एक सूची बॉक्स गिरा दिया और पॉप्युलेट किया। किसी भी स्पष्ट माध्यम से सूची बॉक्स में स्क्रॉल ईवेंट प्राप्त करने में कोई खुशी नहीं है। –

उत्तर

2

यह वेबब्रोसर को लागू करने के तरीके का एक परिणाम है। टच इवेंट सीधे ब्राउज़र इंजन को सौंप दिया जाता है। एक बार ऐसा होता है जब सिल्वरलाइट मूल रूप से तस्वीर से बाहर होता है। दुर्भाग्य से मैं किसी भी कामकाज के बारे में नहीं सोच सकता जो आपको वह दे सकता है जो आप चाहते हैं। -Skeets, आप वास्तव में यह चाहते एमएस देव

+0

मैंने वेबब्रोसर के शीर्ष पर एक पारदर्शी कैनवास बनाया है। यह घटनाओं को ब्राउज़र तक पहुंचने से रोकता है, हालांकि। – Esa

1

हैं:

<Grid> 
    <phone:WebBrowser Source="http://www.microsoft.com" /> 
    <Rectangle Fill="Transparent" ManipulationCompleted="HandleManipulationCompleted"/> 
</Grid> 

लेकिन निश्चित रूप से यह पूरी तरह से वेब ब्राउज़र नियंत्रण के साथ बातचीत के नीचे ताले और वहाँ ब्राउज़र के लिए जोड़-तोड़ की घटनाओं की पुनरावृति बस कोई रास्ता नहीं है ...

4

मैं स्कीट पहले से लिखे गए विस्तार को विस्तारित करना चाहता हूं।

बिंदु यह है कि एमएस डब्ल्यूपी 7 देव टीम ने "दिशानिर्देश" प्रकाशित किया है, जहां वे अत्यधिक लेआउट नियंत्रण डालने को अत्यधिक हतोत्साहित करते हैं जो इशारे के उसी सेट को स्वीकार करते हैं और प्रतिक्रिया देते हैं। उदाहरण के लिए, आपको एक पैनो के अंदर एक पिवट को एम्बेड करने की कोशिश नहीं करनी चाहिए, क्योंकि क्षैतिज-स्वाइप टकराएगा और यह मुश्किल होगा कि उनमें से किसके कार्यों को निष्पादित करना चाहिए। ब्राउज़र के साथ एक ही मामला है: यह सभी स्वाइप और पैन का जवाब देता है .. इसलिए लगभग किसी भी स्क्रॉलिंग नियंत्रण में नहीं रखा जाना चाहिए !!

अब, यह कहकर, मैं आपको बताना चाहता हूं कि इसे पार करना संभव है - हालांकि यह आपके वास्तविक मामले के आधार पर आसान नहीं हो सकता है।

ऐसा करने के लिए, आप अभी भी इशारों सिल्वरलाइट टूलकिट पुस्तकालय से GestureService/GestureListener उपयोग करने के लिए है के बारे में सूचना प्राप्त करना चाहते है, तो सबसे छोटी बात। यहां तक ​​कि जब WebBrowser कच्चे हेरफेर की घटनाओं को बुझाता है, तब भी जेश्चर लिस्टनर आपको सूचित करने में सक्षम होगा - क्योंकि यह स्पष्ट रूप से कुछ "अन्य परत" पर सुनता है, मैं वास्तव में इसमें शामिल नहीं होना चाहता हूं। बस पुस्तकालय लाने, यह एड-संदर्भ, की तरह कुछ कार्य करें:

GestureService.GetListener(targetcontrol).Flick(myBrowserFlickHandler); 

और इसके पूर्ण हो जाने - आप सूचना मिलती है तो जब भी नियंत्रण पर किसी को फ्लिक, पूरी तरह से हेरफेर की घटनाओं का कोई संबंध e.handled जा रहा है = true या नहीं। यहां छोटे अस्वीकरण: मुझे याद नहीं है कि 7.0 पर यह काम करता है, क्योंकि WebBrowser वहां थोड़ा अंतर बनाता है। 7.1 और 7.5 पर यह काम करना चाहिए।

हालांकि, यदि आप इसे वेबब्रोसर पर लागू करते हैं - तो आपको नोटिफ़ मिल जाएगा - लेकिन वेबब्रोसर इसे भी प्राप्त करेगा। इसका मतलब है कि, 2 नियंत्रण प्रतिक्रिया देंगे, और अगर आप हैंडलर के भीतर से कुछ स्टोरीबोर्ड शुरू करते हैं तो यह दृष्टि से काफी अस्वीकार हो जाता है ..

7.1 और लगभग वर्तमान 7.5 पर, वेबब्रोसर के साथ कड़ी मेहनत करना संभव है और पूरी तरह से नियंत्रित करने के लिए जो मैनिपुलेशन-घटना देखेंगे।इस प्रकार, डब्लूबीबी के लिए मनी-इवेंट्स को फ़िल्टर करके, और घटनाओं को देखने के लिए जेस्चर लिस्टनर का उपयोग करके, आप दोनों डब्ल्यूबी को कुछ भी करने से रोक सकते हैं, और साथ ही आप इसके बजाय अपनी क्रिया के साथ प्रतिक्रिया दे सकते हैं। मैंने इसी समस्या के जवाब में बड़े पैमाने पर लिखा है, विवरण के लिए WP7 Pivot control and a WebBrowser control देखें। हालांकि यह करने के लिए एक त्वरित/आसान/मजाकिया बात नहीं है।

संपादित करें: और सबसे महत्वपूर्ण बात, यह भविष्य में काम करने के लिए गारंटी नहीं है। 7.1 और 7.5 एसडीके/ओएस/एपीआई संस्करणों के दौरान, WebBrowser नियंत्रण के अंदर कुछ प्रमुख आंतरिक चल रहे परिवर्तन दिखाई दे रहे हैं, और मुझे आश्चर्य नहीं होगा, अगर यह अगले कुछ रिलीज में नाटकीय रूप से बदल जाएगा। उन चीजों के साथ मत खेलो जिनके बारे में मैंने लिखा है यदि आप अगले 1-2 वर्षों में फिर से विषय पर फिर से विचार नहीं करना चाहते हैं।

-3

मुझे लगता है कि आप में गड़बड़ी की घटनाओं पर कब्जा करने का एक बेहतर तरीका है, अगर यह WP7.5 मैंगो में है के बाद से ब्राउज़र नियंत्रण जो मैं इस link

+0

-1 @Prakash यह एक ब्लॉग पोस्ट का सीधा चीर है जिसे मैंने यहां लिखा था: http://www.scottlogic.co.uk/blog/colin/2011/11/suppressing-zoom-and-scroll-interactions- इन-द-विंडोज-फोन -7-ब्राउज़र-नियंत्रण/ – ColinE

+0

@ कोलिने हाँ, मैंने वहां लिखा था कि मुझे इसे लिंक से मिला है। ऐसा नहीं किया जाना चाहिए। – Prakash

+0

@ कोलिने यदि आप इससे नाखुश हैं तो मैं सिर्फ आपके ब्लॉग पर एक लिंक दूंगा और कोई सामग्री नहीं। – Prakash

संबंधित मुद्दे