Scroll 禁用滚动&;放大Windows Phone 8网络浏览器

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”,但

我正在尝试禁用Windows Phone 8上WebBrowser控件的滚动和缩放,而不使用任何HTML标记。 我找到了一些关于这方面的文章,但它们都是针对WindowsPhone7的,我无法使代码在WP8上工作。 我尝试了下面文章中描述的内容,但在WP8上不起作用:

我还尝试设置了
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设备遵守了您在上链接的问题声明中描述的指令。你最近试过吗?您正在呈现的页面中可能有某些内容阻止此功能正常工作。您找到解决方案了吗?