【问题标题】:UWP: Manipulation in a scrollviewerUWP:滚动查看器中的操作
【发布时间】:2017-09-29 03:43:03
【问题描述】:

我在我的应用程序中使用 translateX 操作。但是当我想在滚动查看器中使用它时,滚动查看器停止工作并且不滚动(我需要垂直导轨)。 该怎么做才能解决它。 MyXAML 代码:

<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# 代码隐藏:

#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 的直接操作。

标签: c# xaml scroll uwp swipe


【解决方案1】:

很遗憾,如果ScrollViewer 需要滚动和手势,则没有好的解决方案。如果你想处理用户的手势,你必须禁用DirectManipulation,这也会禁用滚动。 有一篇文章谈到了这个问题,你应该阅读this以了解更多。

【讨论】:

    【解决方案2】:

    我修好了。 我的代码:

    ManipulationMode="TranslateX,System"
    

    【讨论】:

    • 谢谢!在我尝试了许多不同的尝试后,这对我来说非常有用。
    猜你喜欢
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多