2015-04-30 5 views
8

WebView में मैं WP 8.1 के साथ HTML तत्वों लोड। जब भी सामग्री वेबव्यू ऊंचाई से अधिक हो तो समस्या के बिना स्क्रॉल होता है। मेरी समस्या यह है कि मेरे पास WebView के शीर्ष में XAML तत्व हैं, जिन्हें वेबव्यू स्क्रॉल के साथ स्क्रॉल करना है।XAML तत्व हैडर के साथ WebView ScrollViewer अंदर

Sourcecode:

<ScrollViewer> 
<Grid> 
<Grid.RowDefinitions> 
<RowDefinition Height="Auto" /> 
<RowDefinition Height="*"/> 
</Grid.RowDefinitions> 
<Grid VerticalAlignment="Top" > 
<StackPanel x:name="xamlelement" Margin="15 20 0 0"> 
<textblock/> 
    ------- 
    ------- 
    ------- 
</StackPanel> 
</Grid> 
<Grid x:Name="testgrid" Grid.Row="1"> 
<WebView Margin="0 30 0 0" x:Name="msgContent" > 
</WebView> 
</Grid> 
</Grid> 
</ScrollViewer> 

जब भी WebView तत्व "msgContent" स्क्रॉल मैं StackPanel "xamlelement" WebView के साथ स्क्रॉल करने के लिए चाहते हैं।

+0

आप WebView में इंजेक्षन अतिप्रवाह से निपटने है कि इसके स्क्रॉल सक्षम बनाता है ताकि ScrollViewer संभालती सभी बजाय स्क्रॉल बंद करने के लिए कर सकता है। जिस तरह से आपके पास यह है, मैं अनुमान लगा रहा हूं कि यह वास्तव में स्क्रॉल के भीतर एक स्क्रॉल है? –

उत्तर

4

समस्या यहाँ हम

1) overhidden की स्थापना वेबव्यू

2) उस में लोड html सामग्री के बराबर वेबव्यू की ऊंचाई की स्थापना करने के लिए भरी हुई सामग्री HTML को यह 2 चरणों से वेबव्यू पुस्तक को निष्क्रिय कर सकते है ।

लेकिन तब जब हम वेबव्यू में ले जाने की कोशिश, evnets माता पिता ScrollViewer तत्व

+0

लोड [एचटीएमएल उत्तरदायी वेब पृष्ठों 'के मामले में] html सामग्री की ऊंचाई को खोजने के लिए किसी भी तरह से –

+0

वेबव्यू में scriptnotify और html पृष्ठ पर किया गया आकार बदलने के लिए श्रोता जोड़ सकते हैं और scriptnotify को scipt से दस्तावेज़ की ऊंचाई भेजने के लिए एक श्रोता जोड़े है सी # कोड में –

0

WebView के लिए पारित नहीं कर रहे हैं InvokeScript विधि है, जो वर्तमान में लोड HTML से निर्दिष्ट स्क्रिप्ट फ़ंक्शन निष्पादित, विशिष्ट तर्क के साथ प्रदान करता है। जब WebView की लोड पूर्ण घटना होती है, तो मैं उस जावास्क्रिप्ट का आविष्कार कर रहा हूं जो स्क्रॉलिंग को अक्षम करता है। नीचे दिया गया पूरा कोड देखें।

string DisableScrollingJs = @"function RemoveScrolling() 
          { 
           var styleElement = document.createElement('style'); 
           var styleText = 'body, html { overflow: hidden; }' 
           var headElements = document.getElementsByTagName('head'); 
           styleElement.type = 'text/css'; 
           if (headElements.length == 1) 
           { 
            headElements[0].appendChild(styleElement); 
           } 
           else if (document.head) 
           { 
            document.head.appendChild(styleElement); 
           } 
           if (styleElement.styleSheet) 
           { 
            styleElement.styleSheet.cssText = styleText; 
           } 
          }"; 

void webView_LoadCompleted(object sender, NavigationEventArgs e) 
{ 
    webView.InvokeScript("eval", new[] { DisableScrollingJs }); 
} 

codeproject से।

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