조작 관성 Windows Phone 8.1에서 항상 0.1.
-
26-12-2019 - |
문제
저는 보편적 인 앱을 작성하고 ManipualtionDelta에서 제대로 조작 관성을 처리해야합니다.조작 할 때 정상적인 값을 얻지 만 관성 부분은 항상 0입니다 (회전 및 번역 모두).Windows 8.1에서와 같이 Windows Phone에서만 이런 일이 발생합니다. 질문을 방지하기 위해 ManipulationModes.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;
}
.
문제가 확실하지 않습니다.희망 내 코드가 도움이되기를 바랍니다.
행운의 최고!
다른 팁
관성 하에서 delta.translation을 사용하지 마십시오.이전 이벤트가 실행 된 이후로 통과 한 시간에 따라 계산 된 값입니다.자주 첫 번째는 (0,0)입니다.
대신 이렇게해서
if (e.IsInertial) {
ComputeMyOwnInertia(e.Velocities)
e.Complete(); // no more inertial events
}
.
속도는 LPX / MSEC (마일리시그 당 논리 픽셀)에 있습니다. 관성이 당신을 데려 오는 추정을 얻으려면 ~ 400으로 곱하십시오.
다음 항목은 Windows Phone Platform에서 지원되지 않습니다.
- isManipulationEnabled 속성은 지원되지 않습니다.조작 이벤트는 Windows Phone에서 기본적으로 활성화됩니다.
- 회전 변환은 지원되지 않습니다.
- 관성 이벤트는 지원되지 않습니다.
http://technet.microsoft.com/en-US / Windows / FF426933 (v= vs.96)
제휴하지 않습니다 StackOverflow