gpt4 book ai didi

c# - 禁用滚动电话 :webbrowser windows phone 8/8. 1

转载 作者:太空宇宙 更新时间:2023-11-03 13:17:36 25 4
gpt4 key购买 nike

我试图在我的 Windows Phone 8 应用程序中禁用 phone:webbrowser 中的滚动功能。我不想这样做的原因是我想在 webview 下面放置一个带有项目的堆栈面板,但仍然显示整个网页。

为此,我获取网页的总高度并将网络浏览器的高度设置为网页高度。这将通过向网络浏览器添加 javascript 来完成。 webview 现在将包含整个网页及其下方的项目,并且这两个项目都在 ScrollViewer 中,因此您可以滚动浏览页面。

我现在遇到的唯一问题是您可以滚动浏览器,因此无法滚动滚动查看器。有人知道如何解决这个问题吗?

<ScrollViewer
Grid.Row="1"
Margin="0,0,0,0">

<StackPanel
x:Name="ContentPanel"
Margin="0,0,0,0">

<phone:WebBrowser
x:Name="webView"
Navigating="WebBrowserNavigating"
LoadCompleted="WebBrowserLoadCompleted"
ScriptNotify="browser_ScriptNotify"
IsScriptEnabled="True"/>

<StackPanel
x:Name="CouponHolder"
Margin="0,5,0,0">

</StackPanel>
</StackPanel>
</ScrollViewer>

我还查看了其他问题,但它们对我没有帮助: http://www.codeproject.com/Tips/718671/Disable-WebView-scrolling-in-Windows-Store-Apps

而且我看到很多人提供像 VerticalScrollBarVisibility="Disabled"这样的遮阳篷,但这不起作用,就像建议的那样它只会隐藏可见性......

最佳答案

您可以通过设置 IsHitTestVisible="false"来禁用对 WebBrowser 控件的所有操作。缺点是不能按Links、Navigate等。

如果您只想禁用滚动,请查看这篇博文:http://www.scottlogic.com/blog/2011/11/17/suppressing-zoom-and-scroll-interactions-in-the-windows-phone-7-browser-control.html

可以发现WebBrowser控件的VisualTree是这样的:

    \-WebBrowser
\-Border
\-Border
\WebBrowserInteropCanvas (New in Windows Phone 8, missing in WP7)
\-PanZoomContainer
\-Grid
\-Border (you need access this one)
\-ContentPresenter
\-TileHost

可以获取VisualTree中最后一个Border,订阅ManipulationDelta、ManipulationStarted和ManipulationCompletedEvents。并设置 e.Handled = true;在事件处理程序中。小心点。例如,对于 Windows 8.1 和 Windows Phone 8.1(运行时)中的此代码,where 是不等价的。

此 hack 将取消 webbrowser 的滚动,同时用户可以与整个网页交互,但您将无法抑制将 webbrowser 放入 scrollviewer 的操作。

一般来说,如果将 WebBrowser 放在 ScrollViewer 中,我认为您无法获得理想的用户体验

关于c# - 禁用滚动电话 :webbrowser windows phone 8/8. 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25502875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com