t可能是一个基本问题。但经过几个小时的研究,我无法弄明白。 我有一个项目详细信息页面。当滚动视图到达右下角时,我想在其中添加另一个网格。现在,我通过在xaml中添加一个列并切换其visibility属性来部分实现此目标。
<Grid x:Name="body" Style="{StaticResource LayoutRootStyle}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Grid x:Name="dynamicGrid" Grid.Column="1" Grid.RowSpan="2" Visibility="Collapsed">
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="360"/>
<RowDefinition Height="360"/>
</Grid.RowDefinitions>
<TextBlock .../>
<GridView .../>
<GridView .../>
</Grid>
在代码背后
if (//Reach the right side)
{
if (related.Visibility == Visibility.Collapsed)
{
related.Visibility = Windows.UI.Xaml.Visibility.Visible;
}
}
if (// Move away from right border)
{
related.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
它在某种程度上起作用。但动画很疯狂。有时,滚动查看器甚至拒绝回到开头。我想问题是当我在运行时添加/删除ui控件时,scrollviewer不能很好地处理它。
我想知道有没有更好的方法来实现这个功能?欢迎提出任何建议。
答案 0 :(得分:0)
您可以通过调用grid.Children.Add(newChildControl)在网格中添加子控件。您还可以通过调用Grid.SetRow / Column / RowSpan / ColumnSpan将子控件分配给特定的行/列/跨度。