質問

私はユニバーサルなアプリを書いていて、マニピュレータ州デルタの操作慣性を適切に処理する必要があります。操作時に通常の値が得られますが、慣性部分は常にゼロ(回転と並進の両方)です。これはWindows 8.1のように、これがWindows Phoneでのみ起こることが継承されます。 質問を防ぐために、私はManipulationMode.allを設定します。

役に立ちましたか?

解決

テストしました。慣性は確かにWindows Phone 8.1

に存在します。
<Grid>
    <Ellipse Width="100"
             Height="100"
             HorizontalAlignment="Center"
             VerticalAlignment="Center"
             Fill="White"
             ManipulationDelta="Ellipse_ManipulationDelta"
             ManipulationMode="All">
        <Ellipse.RenderTransform>
            <CompositeTransform />
        </Ellipse.RenderTransform>
    </Ellipse>
</Grid>
.

これで:

private void Ellipse_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
    var trasnform = (sender as FrameworkElement).RenderTransform as CompositeTransform;
    trasnform.TranslateX += e.Delta.Translation.X;
    trasnform.TranslateY += e.Delta.Translation.Y;
}
.

問題がわからない。私のコードが役立つことを願っています。

頑張って!

他のヒント

劣化下でΔTranslationを使用しないでください。前のイベントが実行されてから経過する時間に応じて、計算値です。だから、最初のものは(0,0)です。

代わりにこのようなものをする

if (e.IsInertial) {
    ComputeMyOwnInertia(e.Velocities)
    e.Complete(); // no more inertial events
}
.

速度はLPX / MSECにあります(1分秒あたりの論理ピクセル) 慣性があなたをもたらす推定を得るためにそれを~400倍増する。

Windows Phone Platformではサポートされていません:

  • IsManipulationEnabledプロパティはサポートされていません。操作イベントは、Windows Phoneではデフォルトで有効になっています。
  • 変換を回転させることはできません。
  • 慣性イベントはサポートされていません。

http://technet.microsoft.com/EN-US / Windows / FF426933(V= VS.96)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top