내 응용 프로그램에서 translateX 조작을 사용하고 있습니다. 하지만 scrollviewer에서 사용할 때 scrollviewer는 작동을 멈추고 스크롤하지 않습니다 (수직 레일이 필요함). 해결 방법. MyXAML 코드 :UWP : 스크롤 뷰어에서 조작
<ScrollViewer>
<Grid x:Name="MainGrid" Background="{ThemeResource AppBackgroundColor}"
ManipulationMode="TranslateX" ManipulationDelta="MainGrid_ManipulationDelta" ManipulationCompleted="MainGrid_ManipulationCompleted"
ManipulationStarted="MainGrid_ManipulationStarted"
>
<ContentControl Content="{x:Bind TheGrid,Mode=OneWay}"/>
<Grid.RenderTransform >
<TranslateTransform x:Name="myScaleTransform" />
</Grid.RenderTransform>
</Grid>
</ScrollViewer>
그리고 내 C#의 코드 숨김 다음 ScrollViewer
요구를 모두 스크롤 제스처 경우
#region Manipulations
private void MainGrid_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
if (myScaleTransform.X >= 60 && e.Delta.Translation.X > 1)
{
myScaleTransform.X = 60;
return;
}
if (myScaleTransform.X <= -180 && e.Delta.Translation.X < 1)
{
myScaleTransform.X = -180;
return;
}
myScaleTransform.X += e.Delta.Translation.X;
lastPostition.X += e.Delta.Translation.X;
}
private void MainGrid_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
if (myScaleTransform.X <= -170) return;
urStoryboard.Begin();
}
private void MainGrid_ManipulationStarted(object sender, ManipulationStartedRoutedEventArgs e)
{
startpoint = e.Position;
lastPostition = e.Position;
}
}
#endregion
당신은 할 수 없습니다 ... 적어도 내가 알고있는 것은 아닙니다. 'ManipulationMode'의 값을'System'이 아닌 다른 값으로 변경하면,'ScrollViewer'에서 직접 조작을하지 않게됩니다. – Laith