1

t は基本的な質問かもしれません。しかし、数時間の調査の後、私はそれを理解できません。商品詳細ページがあります。スクロールビューが右下に達するたびに、別のグリッドを追加したいと考えています。現在、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>

そしてコードビハインドで

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はそれをうまく処理しません。

この機能を実現するためのより良い方法はあるのでしょうか? どんな提案でも大歓迎です。

4

1 に答える 1

0

grid.Children.Add(newChildControl)を呼び出すことにより、グリッドに子コントロールを追加できます。Grid.SetRow / Column / RowSpan / ColumnSpanを呼び出すことにより、子コントロールを特定の行/列/スパンに割り当てることもできます。

于 2012-10-02T08:35:57.083 に答える