阻止在ScrollViewer中滚动一个特定项目

时间:2011-11-25 08:45:23

标签: xaml windows-phone-7 scrollview windows-phone-7.1

我有一个静态页面显示事件的结果,如下所示。

<StackPanel Height="3700" >
  <ScrollViewer Margin="10" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" Height="495" >    
    <Grid>
      <Grid.RowDefinitions>
        <RowDefinition Height="50"/>
        <RowDefinition Height="70"/>
        <RowDefinition Height="50"/>
        <RowDefinition Height="50"/>
        <RowDefinition Height="50"/>
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="120"/>
        <ColumnDefinition Width="120"/>
        <ColumnDefinition Width="300"/>
        <ColumnDefinition Width="170"/>
        <ColumnDefinition Width="200"/>
      </Grid.ColumnDefinitions>
      <Border Grid.Row="1" Grid.ColumnSpan="5" Background="#FF3664F8"/>
      <Border Grid.Row="8" Grid.ColumnSpan="5" Background="#FF3664F8"/>

      <Border Grid.Row="2" Grid.ColumnSpan="5">
        <Image Source="../Images/Divider.png" Margin="0,30,0,0" Height="7"/>
      </Border>
      <Border Grid.Row="3" Grid.ColumnSpan="5">
        <Image Source="../Images/Divider.png" Margin="0,30,0,0" Height="7"/>
      </Border>
      <Border Grid.Row="4" Grid.ColumnSpan="5">
        <Image Source="../Images/Divider.png" Margin="0,30,0,0" Height="7"/>
      </Border>

      <TextBlock Text="column1" Grid.Row="1" Grid.Column="0" TextWrapping="Wrap" FontSize="24" Padding="5" FontWeight="SemiBold"/>
      <TextBlock Text="column2" Grid.Row="1" Grid.Column="1" FontSize="24" Padding="5" FontWeight="SemiBold" TextWrapping="Wrap"/>
      <TextBlock Text="column3" Grid.Row="1" Grid.Column="2" FontSize="24" Padding="5" FontWeight="SemiBold" TextWrapping="Wrap"/>
      <TextBlock Text="column4" Grid.Row="1" Grid.Column="3" FontSize="24" Padding="5" FontWeight="SemiBold" TextWrapping="Wrap"/>
      <TextBlock Text="column5" Grid.Row="1" Grid.Column="4" FontSize="24" Padding="5" FontWeight="SemiBold" TextWrapping="Wrap"/>

      <TextBlock Text="1" Grid.Row="2" Grid.Column="0" Padding="10" FontSize="20"/>
      <TextBlock Text="3269" Grid.Row="2" Grid.Column="1" Padding="10"/>
      <TextBlock Text="SINGH SURENDER" Grid.Row="2" Grid.Column="2" TextWrapping="Wrap" Padding="5"/>
      <TextBlock Text="IND" Grid.Row="2" Grid.Column="3" Padding="5"/>
      <TextBlock Text="1:05:44" Grid.Row="2" Grid.Column="4" Padding="5"/>

      <TextBlock Text="2" Grid.Row="3" Grid.Column="0" Padding="10" FontSize="20"/>
      <TextBlock Text="12784" Grid.Row="3" Grid.Column="1" Padding="10"/>
      <TextBlock Text="UTRAINEN JUTSI" Grid.Row="3" Grid.Column="2" Padding="5"/>
      <TextBlock Text="FIN" Grid.Row="3" Grid.Column="3" Padding="5"/>
      <TextBlock Text="1:05:57" Grid.Row="3" Grid.Column="4" Padding="5"/>

      <TextBlock Text="3" Grid.Row="4" Grid.Column="0" Padding="10" FontSize="20"/>
      <TextBlock Text="3202" Grid.Row="4" Grid.Column="1" Padding="10"/>
      <TextBlock Text="KUMAR SANTOSH" Grid.Row="4" Grid.Column="2" Padding="5"/>
      <TextBlock Text="IND" Grid.Row="4" Grid.Column="3" Padding="5"/>
      <TextBlock Text="1:06:17" Grid.Row="4" Grid.Column="4" Padding="5"/>
    </Grid>
  </ScrollViewer>
</StackPanel>

在每个结果之后都有一个分隔线,我使用了一个图像(Divider.png)。我们有5列显示所以使用水平滚动查看器来显示。

问题是:我的设计师想要的是,当我们水平滚动时,数据应该移动,但分隔线不会移动。

有可能吗?

1 个答案:

答案 0 :(得分:0)

我不确定实际需要什么,因为我对要求的理解没有意义。如果分隔符不移动但内容确实没有移动,那么最终可能会使内容与分隔符重叠。

也就是说,如果你想阻止某些东西滚动,只需将它从滚动查看器中取出即可。如果你将分隔线放在滚动查看器后面,那么只要你有一个滚动查看器内容的透明背景,你就会得到你想要的效果。