C# ScrollViewer.ChangeView()不水平滚动
我正在尝试创建两个分别垂直和水平滚动的ScrollViewer 滚动应该在检测到操纵增量事件时开始,我已经使用ChangeView方法相应地移动了ScrollViewer。垂直的scrollviewer可以,但水平的scrollviewer不一样。 我添加了一个来显示2个滚动查看器,因为我不能在这里发布它 下面是代码:XAMLC# ScrollViewer.ChangeView()不水平滚动,c#,xaml,windows-phone-8.1,scrollviewer,C#,Xaml,Windows Phone 8.1,Scrollviewer,我正在尝试创建两个分别垂直和水平滚动的ScrollViewer 滚动应该在检测到操纵增量事件时开始,我已经使用ChangeView方法相应地移动了ScrollViewer。垂直的scrollviewer可以,但水平的scrollviewer不一样。 我添加了一个来显示2个滚动查看器,因为我不能在这里发布它 下面是代码:XAML <!--horizontal scrollviewer--> <ScrollViewer x:Name="horizontalS
<!--horizontal scrollviewer-->
<ScrollViewer x:Name="horizontalScrollViewer"
Grid.Column="1"
Grid.RowSpan="3"
HorizontalScrollMode="Disabled"
VerticalScrollMode="Disabled">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="100"/>
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<!--upperGrid-->
<GridView Grid.Row="0"
ScrollViewer.HorizontalScrollMode="Disabled"
ScrollViewer.VerticalScrollMode="Disabled"
ItemsSource="{Binding dataItems}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical"
MaximumRowsOrColumns="1"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate>
<TextBlock Height="80" Width="80" Text="{Binding}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<!--bottomGrid-->
<GridView Grid.Row="2"
ScrollViewer.HorizontalScrollMode="Disabled"
ScrollViewer.VerticalScrollMode="Disabled"
ItemsSource="{Binding dataItems}">
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical"
MaximumRowsOrColumns="1"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.ItemTemplate>
<DataTemplate>
<TextBlock Height="80" Width="80" Text="{Binding}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
</Grid>
</ScrollViewer>
我在msdn文档中读到:
水平偏移
类型:i引用[C++]| System.Nullable[.NET]
介于0和ScrollableWidth之间的值,指定内容>应水平滚动的距离
但是我的ScrollableWidth等于零,我不明白为什么
有人知道我的代码出了什么问题吗?我认为在禁用滚动时,您不能滚动。如果您只是想隐藏滚动条,请执行以下操作:
<ScrollViewer x:Name="horizontalScrollViewer"
Grid.Column="1"
Grid.RowSpan="3"
HorizontalScrollMode="Enabled"
VerticalScrollMode="Enabled"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden">
...
</ScrollViewer>
...
我自己找到了解决方案
我必须在水平滚动查看器上添加水平滚动条可见性选项。这很奇怪,因为我不需要将它添加到垂直的一个。下面是水平滚动查看器的代码:
<ScrollViewer x:Name="horizontalScrollViewer"
Grid.RowSpan="3"
Grid.Column="1"
HorizontalScrollMode="Disabled"
HorizontalScrollBarVisibility="Auto"
VerticalScrollMode="Disabled">
不,这不是我的目标。垂直滚动查看器是完全相同的,它可以工作。出于我的目的,我不能使用scrollviewer滚动,我必须检测网格上的操纵事件,然后使用ChangeView方法以编程方式滚动元素。不幸的是,水平滚动查看器无法工作
<ScrollViewer x:Name="horizontalScrollViewer"
Grid.RowSpan="3"
Grid.Column="1"
HorizontalScrollMode="Disabled"
HorizontalScrollBarVisibility="Auto"
VerticalScrollMode="Disabled">