【问题标题】:Scroll to object on Button click (C# /Xaml)单击按钮滚动到对象(C#/Xaml)
【发布时间】:2016-03-04 15:49:14
【问题描述】:

有没有办法让 xaml 页面在单击按钮时滚动到特定对象?例如,我的页面顶部有三个按钮。我希望每个按钮都能将滚动查看器移动到页面的顶部、中间和底部。我怎样才能做到这一点?谢谢!

【问题讨论】:

  • 我大胆猜测您可以对 ScrollViewer VerticalOffset 进行属性更改。例如,顶部为 0,内容高度大小 / 2 为中间,内容大小高度为底部。
  • 我想你想要this这样的东西。

标签: c# xaml uwp


【解决方案1】:

我尝试创建 Xaml 并解决问题。这是我的解决方案。 这是 Xaml 代码。

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
   <Grid.RowDefinitions>
       <RowDefinition Height="100"></RowDefinition>
       <RowDefinition Height="*"></RowDefinition>
   </Grid.RowDefinitions>

<Button HorizontalAlignment="Left" Content="Top" Click="Button_Click" ></Button>
<Button HorizontalAlignment="Center" Content="Center" Click="Button_Click_1" ></Button><Button Content="Botton" HorizontalAlignment="Right" Click="Button_Click_2" ></Button>
<ScrollViewer Grid.Row="1" Name="MyScrollViewer" MaxZoomFactor="9">
     <StackPanel>
          <TextBlock Name="TextBlock" Height="20"> </TextBlock>
          <Rectangle Height="300" Width="100"  Fill="BlanchedAlmond"></Rectangle>
          <Rectangle Height="300" Width="100"  Fill="Blue"></Rectangle>
          <Rectangle Height="300" Width="100"  Fill="BlueViolet"></Rectangle>
          <Rectangle Height="300" Width="100"  Fill="Chartreuse"></Rectangle>
          <Rectangle Height="300" Width="100"  Fill="Crimson"></Rectangle>
     </StackPanel>
</ScrollViewer>
</Grid>           

这是 .cs 代码

private void Button_Click(object sender, RoutedEventArgs e)
{
    MyScrollViewer.ScrollToVerticalOffset(0);
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    var scrollableHeight = MyScrollViewer.ScrollableHeight;
    var height= scrollableHeight / 2;
    MyScrollViewer.ScrollToVerticalOffset(height);
}

private void Button_Click_2(object sender, RoutedEventArgs e)
{
    MyScrollViewer.ScrollToVerticalOffset(MaxHeight);
}

}

【讨论】:

  • 感谢您的回复,但这对我不起作用。单击按钮时没有任何反应。
  • @robbiestells 代码已经更新,我已经测试过,效果很好。
猜你喜欢
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多