我必须在 Windows Phone 应用程序中的滚动查看器中显示一个网络浏览器,并满足以下要求:
- 网络浏览器高度应根据其内容进行调整。
- 网络浏览器滚动应该禁用,(当用户在网络浏览器中滚动时,滚动查看器应该发生滚动)
网络浏览器可以进行捏合缩放并导航至其内容内的链接。
我该如何实现呢?非常感谢任何链接或示例。
最佳答案
我正在使用这样的代码。将事件附加到浏览器控件树中的 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;
}
关于scroll - Windows Phone - 避免滚动放置在滚动查看器内的 Web 浏览器控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787331/