您好,作为Windows 8 metro应用程序的一部分,我使用了webview,我想禁用水平滚动,因此用户不会错误地离开信息。
我已经尝试将其放在滚动查看器中,然后禁用水平滚动,但滚动条和webviewer中的滚动处于活动状态。
用户仍然必须能够使用webviewer,因此禁用它的所有输入都不会工作.. :-)
希望有人有一个简单的解决方案..
编辑:
正如评论中所写,我一直在尝试使用JavaScript来取得成功。
使用
.InvokeScript("eval", new string[] { "document.body.scroll = 'no';" });
和
.InvokeScript("eval", new string[] { "document.body.style.overflow ='hidden';" });
答案 0 :(得分:0)
看起来不可能..
最后我最终使用
string html = webBrowser1.InvokeScript("eval", new string[] { "document.documentElement.outerHTML;" });
获取页面的来源,然后使用regex.replace将html更改为不允许滚动,不是一个非常优雅的解决方案,并不是非常普遍但对我有用。
string resultString = null;
try
{
resultString = Regex.Replace(html, "<YOUR REGEX HERE, RegexOptions.Singleline);
}
catch (ArgumentException ex)
{
string errorMessage1 = ex.ToString();
var messageDialog = new MessageDialog(errorMessage1);
await messageDialog.ShowAsync();
}
答案 1 :(得分:0)
XAML
<Grid>
<WebView
Height="400"
NavigationCompleted="theWebView_NavigationCompleted"
x:Name="theWebView" Source="http://blogs.msdn.com/ashish"
></WebView>
</Grid>
Code
private
async void theWebView_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs
args)
{
string returnStr = await
theWebView.InvokeScriptAsync("eval", new string[] {
SetBodyOverFlowHiddenString });
}
string SetBodyOverFlowHiddenString =
@"function SetBodyOverFlowHidden()
{
document.body.style.overflow =
'hidden';
return 'Set Style to hidden';
}
// now call the function!enter code here
SetBodyOverFlowHidden();";