C# 在运行时在网格中添加ui控件的最佳方法是什么?

C# 在运行时在网格中添加ui控件的最佳方法是什么?,c#,xaml,windows-runtime,C#,Xaml,Windows Runtime,这可能是一个基本问题。但是经过几个小时的研究我还是搞不懂。 我有一个项目详细信息页面。每当scrollview到达右下角时,我想在其中添加另一个网格。现在,我通过在xaml中添加一列并切换其可见性属性,部分实现了这个目标 <Grid x:Name="body" Style="{StaticResource LayoutRootStyle}"> <Grid.ColumnDefinitions> <ColumnDefinition Width=

这可能是一个基本问题。但是经过几个小时的研究我还是搞不懂。 我有一个项目详细信息页面。每当scrollview到达右下角时,我想在其中添加另一个网格。现在,我通过在xaml中添加一列并切换其可见性属性,部分实现了这个目标

<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>
它在某种程度上起作用。但是动画是跳跃的。有时,scrollviewer甚至拒绝回到开头。我想问题是当我在运行时添加/删除ui控件时,scrollviewer不能很好地处理它


我想知道有没有更好的方法来实现这个功能?欢迎任何建议。

您可以通过调用grid.Children.AddnewChildControl在网格中添加子控件。您还可以通过调用Grid.SetRow/column/RowSpan/ColumnSpan将子控件分配给特定的行/列/span。

您看过用户控件吗?不清楚什么相关。@FilipSkakun抱歉没有详细说明。相关的是我想切换的网格。谢谢回复。我也尝试过这种方法。但是它也在闪烁。然后你应该在控件显示或指定转换之前这样做。
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;
}