簡體   English   中英

在運行時在網格中添加ui控件的最佳方法是什么?

[英]What's the best way to add an ui control in the grid at runtime?

這可能是一個基本問題。 但是經過幾個小時的研究,我無法弄清楚。 我有一個物品詳細信息頁面。 每當滾動視圖到達右下角時,我都想在其中添加另一個網格。 現在,我通過在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;
}

它在某種程度上起作用。 但是動畫是跳動的。 有時,scrollviewer甚至拒絕返回到開始。 我猜問題是當我在運行時添加/刪除ui控件時,scrollviewer不能很好地處理它。

我想知道是否有更好的方法來實現此功能? 任何建議都歡迎。

您可以通過調用grid.Children.Add(newChildControl)在網格中添加子控件。 您還可以通過調用Grid.SetRow / Column / RowSpan / ColumnSpan將子控件分配給特定的行/列/跨度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM