私は自分のアプリケーションで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