我必须在 Windows Phone 应用程序的滚动查看器中显示 Web 浏览器,并满足以下要求:
- Web 浏览器的高度应根据其内容进行调整。
- 应禁用Web 浏览器滚动,(当用户在 Web 浏览器中滚动时,应滚动滚动查看器)
Web 浏览器可以进行缩放并导航到其内容中的链接。
我该如何实施?非常感谢任何链接或示例。
我必须在 Windows Phone 应用程序的滚动查看器中显示 Web 浏览器,并满足以下要求:
Web 浏览器可以进行缩放并导航到其内容中的链接。
我该如何实施?非常感谢任何链接或示例。
我正在使用这样的代码。将事件附加到浏览器控件树中的 Border 元素(我正在使用 Linq to Visual Tree - http://www.scottlogic.co.uk/blog/colin/2010/03/linq-to-visual-tree/) .
Browser.Loaded +=
(s,e)=>
{
var border = Browser.Descendants<Border>().Last() as Border;
if (border != null)
{
border.ManipulationDelta += BorderManipulationDelta;
border.ManipulationCompleted += BorderManipulationCompleted;
border.DoubleTap += BorderDoubleTap;
}
};
此外,我正在使用的实现是防止捏合和缩放,这是您想要的工作。尽管这应该可以帮助您朝着正确的方向前进。
private void BorderDoubleTap(object sender, GestureEventArgs e)
{
e.Handled = true;
}
private void BorderManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
// suppress zoom
if (Math.Abs(e.DeltaManipulation.Scale.X) > 0.0||
Math.Abs(e.DeltaManipulation.Scale.Y) > 0.0)
e.Handled = true;
}
private void BorderManipulationCompleted(object sender, ManipulationCompletedEventArgs e)
{
// suppress zoom
if (Math.Abs(e.FinalVelocities.ExpansionVelocity.X) > 0.0 ||
Math.Abs(e.FinalVelocities.ExpansionVelocity.Y) > 0.0)
e.Handled = true;
}
在马克的指导下,我使用了
private void Border_ManipulationDelta(object sender,
System.Windows.Input.ManipulationDeltaEventArgs e)
{
e.Complete();
_browser.IsHitTestVisible = false;
}