Windows Phone 8.1では、常に操作慣性がゼロです
-
26-12-2019 - |
質問
私はユニバーサルなアプリを書いていて、マニピュレータ州デルタの操作慣性を適切に処理する必要があります。操作時に通常の値が得られますが、慣性部分は常にゼロ(回転と並進の両方)です。これは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)
所属していません StackOverflow