2

Windows Phone アプリケーションのスクロール ビューア内に Web ブラウザを表示する必要があります。これらの要件は次のとおりです。

  1. Web ブラウザーの高さは、そのコンテンツに基づいて調整する必要があります。
  2. Web ブラウザーのスクロール無効にする必要があります (ユーザーが Web ブラウザー内でスクロールすると、スクロール ビューアーのスクロールが行われる必要があります)。
  3. Web ブラウザーは、ピンチ ズームを実行して、そのコンテンツ内のリンクに移動できます。

    どうすればそれを実装できますか? リンクやサンプルは大歓迎です。

4

2 に答える 2

1

このようなコードを使用しています。ブラウザ コントロール ツリーの 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;
}
于 2013-05-30T08:05:09.210 に答える