欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

如何禁用 WebBrowser 控件缩放和左右移动,webbrowser缩放

来源: 开发者 投稿于  被查看 34299 次 评论:159

如何禁用 WebBrowser 控件缩放和左右移动,webbrowser缩放


 

 

我认为有两种方法可以实现。 1, WebBrowser 是基于IE 9的,所以WebBrowser 也是支持最新的HTML5标准。然而在HTML中有许多控件是通过Browser的 pan 和zoom等手持行为起作 用的,您可以设置HTML中的 viewport metadata 元素来实现。如:将下面的HTML代码加入到您的HTML文件头上。 <meta name="viewport" content="user-scalable=no" /> 2, WebBroswer控件的组成是一棵树型结构如下图: \-WebBrowser
  \-Border
    \-Border
      \-PanZoomContainer
        \-Grid
          \-Border (*)
            \-ContentPresenter
              \-TileHost
其中 TileHost 就是原始的IE9组件,TileHost 不处理所有的manipulation相关的事件,而是由PanZoomContainer来处理,将这些事件转换成手持,然后将结果传输到TileHost。 换句话说我们可以中断相关的manipulationg事件传输到PanZoomContainer。当这些事件还未bubble up到PanZoomContainer时,当这些事件设置为已经处理过。 这个方法的关键步骤有2步: 1, 需要从WebBroswer组件树中找到Border控件。 2, 处理manipulation相关的事件,并设置该事件已经处理过 e.Handled = true;。
例如:

using LinqToVisualTree;

public class WebBrowserHelper

{

public 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)

e.Handled = true;

}

 

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;

}

}

}

 

详细说明:http://wp.662p.com/thread-7952-1-1.html


C#中webbrowser怎禁用默认调用的IE浏览器缩放功可以

F4 打开属性 找到Formborderstyle 随便改个样式 比如 fixed3d 这样就不可以拉大缩小了
 

怎让窗体中的一个WebBrowser控件随窗口全屏

如果你使用Visual Studio进行.NET编程的话,控件有个Author属性,设置它即可让它随窗体移动。
如果你的编程不是.NET,就只能在窗体的Resize方法里设置控件大小。

不要距离,很好办。把控件的Location属性设置成0,0,size属性设置成和设计时的窗体大小一样大
 

相关文章

    暂无相关文章
相关频道:

用户评论