にパン私はピンチズームを実現するために管理し、(イメージコントロール上)ManipulationDeltaとManipulationStartedイベントをフックすることにより、パンました:滑らかなピンチズームやWindowsの携帯電話8
private void image_OnManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
var transform = (CompositeTransform)image.RenderTransform;
// pan
transform.TranslateX = _translationX + e.CumulativeManipulation.Translation.X;
transform.TranslateY = _translationY + e.CumulativeManipulation.Translation.Y;
// zoom
if (e.PinchManipulation != null)
{
transform.CenterX = e.PinchManipulation.Original.Center.X;
transform.CenterY = e.PinchManipulation.Original.Center.Y;
transform.ScaleX = _scaleX * e.PinchManipulation.CumulativeScale;
transform.ScaleY = _scaleY * e.PinchManipulation.CumulativeScale;
}
}
private void image_OnManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
// the user has started manipulating the screen, set starting points
var transform = (CompositeTransform)image.RenderTransform;
_scaleX = transform.ScaleX;
_scaleY = transform.ScaleY;
_translationX = transform.TranslateX;
_translationY = transform.TranslateY;
}
しかしに比べWindowsの残りの部分の滑らかさは、それが非常に穏やかで堅い感じUIを電話。動きに慣性はありません。
動きを滑らかにする方法はありますか?アニメーションやストーリーボードを使用していますか?私は少なくともスムーズなパンニングを得るためにScrollViewを使用しようとしましたが、その後、ManipulationDeltaイベントは正しく発射されません。
を解決するのに役立つ可能性があり、別のサンプルプロジェクトの問題としてだけで更新が人気があるようですです:私は上記のコードをプログラムで作成したアニメーションと組み合わせて、その "慣性"を感じるようにしました。私はまた、スムーズに動作するように、単純なコントロール(キャンバスとビットマップキャッシュイメージ)を使用して最適化する必要がありました。 – Pking
重複している可能性があります - ここで詳しく説明します。 [http://stackoverflow.com/questions/13969400/pinch-to-zoom-functionality-in-windows-phone-8](http://stackoverflow.com/questions/13969400/pinch-to-zoom-functionality- in-windows-phone-8) –