none
ScrollViewer能否使用触摸滚动内容区域,我的scrollviewer设计为不出现滚动条的,想通过触摸来滚动,该如何做? RRS feed

答案

全部回复

  • 小伙伴,你这是要做什么呀?

    2013年11月21日 9:11
  • 就是想在pad上通过触摸来滚动scrollviewer的内容,是否可以通过修改样式或者属性实现。还是只能通过touchdown touchamove touchup事件来计算位置进行滚动?
    2013年11月22日 0:34
  • 您好!

    据我所知,在Windows Phone 8Scroll Viewer控件是直接支持这样的功能的,我在VS Express for Windows Phone中新建了一个Window Phone 8的程序,请注意查看加粗的代码,

    代码:

    <Grid x:Name="RecipeGrid" Margin="12,0,0,0" d:DataContext="{Binding}">
    	<Grid.ColumnDefinitions>
    		<ColumnDefinition Width="*"/>
    		<ColumnDefinition Width="Auto"/>
    	</Grid.ColumnDefinitions>
    	<Grid.RowDefinitions>
    		<RowDefinition Height="Auto"/>
    		<RowDefinition Height="240"/>
    		<RowDefinition/>
    		<RowDefinition Height="Auto"/>
    	</Grid.RowDefinitions>
    	<TextBlock x:Name="RecipeName" TextWrapping="Wrap" Text="{Binding Title}" Margin="0,0,0,12" Style="{StaticResource LongListSelectorGroupHeaderStyle}" Grid.ColumnSpan="2"/>
    	<Image x:Name="RecipeImage" Grid.Row="1" MaxWidth="480" Stretch="UniformToFill" Source="{Binding BackgroundImage}"/>
    	<ScrollViewer x:Name="DirectionsScrollViewer" Grid.Row="2">
    		<TextBlock x:Name="DirectionsTextBlock" TextWrapping="Wrap" MaxWidth="480" Text="{Binding Directions}" Style="{StaticResource PhoneTextNormalStyle}" 
    				   Margin="0" HorizontalAlignment="Left"/>
    	</ScrollViewer>
    	<StackPanel Grid.Row="3" Orientation="Horizontal" Margin="0,12,0,0">
    		<TextBlock TextWrapping="Wrap" Text="Prep Time: " Style="{StaticResource PhoneTextSubtleStyle}" Margin="0"/>
    		<TextBlock x:Name="PrepTimeTextBlock" TextWrapping="Wrap" Text="{Binding PrepTime}" Style="{StaticResource PhoneTextNormalStyle}"/>
    	</StackPanel>
    </Grid>

    请看下面的截图:

    我不是很清楚Pad中是否和Windows Phone 8程序一样,不过应该大同小异。你可以尝试下。前提,这个Pad必须是Windows 8操作系统的,我猜你说的这个PadSurface吧。其他的Pad我就不好说了。希望这些能对你有帮助!谢谢!

    祝您生活愉快!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2013年11月22日 2:29
    版主
  • 我的程序是wpf程序,放到pad(pro)上使用的,兼容PC,不能是window phone程序。
    2013年11月26日 1:32
  • 您好!

    我想您可能误解我上一个回复了。我的意思是您可以尝试使用这样的方式到Pad上进行尝试,并不是引导您构建一个Windows Phone 8的程序。感谢您的理解!

    我对这个问题作了些研究。如果您只是应用在Surface上,自从.NET Framework 4发布之后,微软新增了一个用于滚动的对象SurfaceScrollViewer

    如果对于WPF中普通的ScrollViewer控件,您需要附加

    ScrollViewer.PanningMode

    ScrollViewer.PanningDeceleration

    ScrollViewer.PanningRatio

    具体信息,请参考:

    http://stackoverflow.com/questions/2829697/is-there-a-way-to-touch-enable-scrolling-in-a-wpf-scrollviewer

    我找到两个类似的帖子,您可以参考:

    http://social.msdn.microsoft.com/Forums/windowsapps/en-US/dd7ad08c-a304-4ac4-85b2-39c7cf623aa0/i-want-touch-events-not-to-be-handled-by-scrollviewer-what-should-i-do?forum=winappswithcsharp

    http://stackoverflow.com/questions/8369040/slider-scrollviewer-in-a-touch-interface-not-working-properly/8946613#8946613

    祝您生活愉快!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年11月26日 2:23
    版主