Scroll 禁用滚动&;放大Windows Phone 8网络浏览器
我正在尝试禁用Windows Phone 8上WebBrowser控件的滚动和缩放,而不使用任何HTML标记。 我找到了一些关于这方面的文章,但它们都是针对WindowsPhone7的,我无法使代码在WP8上工作。 我尝试了下面文章中描述的内容,但在WP8上不起作用: 我还尝试设置了Scroll 禁用滚动&;放大Windows Phone 8网络浏览器,scroll,windows-phone-8,zooming,webbrowser-control,Scroll,Windows Phone 8,Zooming,Webbrowser Control,我正在尝试禁用Windows Phone 8上WebBrowser控件的滚动和缩放,而不使用任何HTML标记。 我找到了一些关于这方面的文章,但它们都是针对WindowsPhone7的,我无法使代码在WP8上工作。 我尝试了下面文章中描述的内容,但在WP8上不起作用: 我还尝试设置了ScrollViewer.VerticalScrollBarVisibility=“Disabled”和ScrollViewer.HorizontalScrollBarVisibility=“Disabled”,但
ScrollViewer.VerticalScrollBarVisibility=“Disabled”
和ScrollViewer.HorizontalScrollBarVisibility=“Disabled”
,但我仍然可以滚动和缩放
我不知道该怎么办了,我开始觉得在WP8上是不可能的。
有人知道如何解决这个问题吗
提前谢谢 您是否尝试过此CSS属性
-ms-touch-action: none;
您可以为此使用WebBrowserHelper类 已创建WebBrowserHelper类的实例
public Header()
{
InitializeComponent();
new WebBrowserHelper(wbHeaderBrowser, strHeaderUri);
new WebBrowserHelper(wbFooterBrowser, strFooterUri);
}
WebBrowserHelper.cs
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using LinqToVisualTree;
using Microsoft.Phone.Controls;
/// <summary>
/// Suppresses pinch zoom and optionally scrolling of the WebBrowser control
/// </summary>
public class WebBrowserHelper
{
private WebBrowser _browser;
/// <summary>
/// Gets or sets whether to suppress the scrolling of
/// the WebBrowser control;
/// </summary>
public bool ScrollDisabled { get; set; }
public WebBrowserHelper(WebBrowser browser)
{
_browser = browser;
browser.Loaded += new RoutedEventHandler(browser_Loaded);
}
private void browser_Loaded(object sender, RoutedEventArgs e)
{
var border = _browser.Descendants<Border>().Last() as Border;
border.ManipulationDelta += Border_ManipulationDelta;
border.ManipulationCompleted += Border_ManipulationCompleted;
}
private void Border_ManipulationCompleted(object sender,
ManipulationCompletedEventArgs e)
{
// suppress zoom
if (e.FinalVelocities.ExpansionVelocity.X != 0.0 ||e.FinalVelocities.ExpansionVelocity.Y != 0.0 ||(ScrollDisabled && e.IsInertial))
}
private void Border_ManipulationDelta(object sender,
ManipulationDeltaEventArgs e)
{
// suppress zoom
if (e.DeltaManipulation.Scale.X != 0.0 ||
e.DeltaManipulation.Scale.Y != 0.0)
e.Handled = true;
// optionally suppress scrolling
if (ScrollDisabled)
{
if (e.DeltaManipulation.Translation.X != 0.0 ||
e.DeltaManipulation.Translation.Y != 0.0)
e.Handled = true;
}
}
}
使用System.Linq;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Input;
使用LinqToVisualTree;
使用Microsoft.Phone.Controls;
///
///抑制Web浏览器控件的收缩缩放和选择性滚动
///
公共类WebBrowserHelper
{
私人网络浏览器;
///
///获取或设置是否抑制的滚动
///网络浏览器控件;
///
公共bool scroll已禁用{get;set;}
公共WebBrowserHelper(WebBrowser浏览器)
{
_浏览器=浏览器;
browser.Loaded+=新的路由EventHandler(已加载浏览器);
}
已加载专用无效浏览器(对象发送器、路由目标)
{
var border=_browser.subjects().Last()作为边框;
border.manufactionDelta+=border_manufactionDelta;
border.manipationcompleted+=border\u manipationcompleted;
}
私有无效边框_操作已完成(对象发送方,
操作完成事件参数(e)
{
//抑制缩放
如果(e.FinalVelocities.ExpansionVelocity.X!=0.0 | | | e.FinalVelocities.ExpansionVelocity.Y!=0.0 | | |(滚动禁用和e.Isinetial))
}
私有void Border_操纵delta(对象发送方,
操作三角帆(e)
{
//抑制缩放
如果(e.DeltaManipulation.Scale.X!=0.0||
e、 DeltaManipulation.Scale.Y!=0.0)
e、 已处理=正确;
//选择性地抑制滚动
如果(已禁用)
{
if(e.DeltaManipulation.Translation.X!=0.0||
e、 DeltaManipulation.Translation.Y!=0.0)
e、 已处理=正确;
}
}
}
您可以将IshitteVisible属性设置为False。您尝试过这篇文章吗?[禁用Webbrowser控件的缩放/平移/滚动功能][1][1]:这与我在问题中发布的链接的解决方案完全相同。它不适用于WP8,只适用于WP7。控件的结构发生了变化。加载了事件后,该事件不起作用,LayoutUpdated
给了我一个异常,它找不到指定的边框。我在调查此问题时发现,我的WP8设备遵守了您在上链接的问题声明中描述的指令。你最近试过吗?您正在呈现的页面中可能有某些内容阻止此功能正常工作。您找到解决方案了吗?