Xamarin.Forms:以编程方式将子项添加到网格的某些列
Posted
技术标签:
【中文标题】Xamarin.Forms:以编程方式将子项添加到网格的某些列【英文标题】:Xamarin.Forms: Add Children programmatically to certain column of grid 【发布时间】:2020-04-19 12:55:33 【问题描述】:我有一个简单的网格:
<Grid Grid.Row="5" x:Name="row5_piccat">
<Grid.ColumnDefinitions >
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="4*" />
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ImageButton
Aspect="AspectFit"
x:Name="btn_dummy_piccat2"
Grid.Column="1"
Source="btn_emptydummy.png" BackgroundColor="#00000000"/>
<Entry x:Name="entry_descri_pickcate"
Grid.Column="1"
FontFamily="arial"
MaxLength="50"
Placeholder="Kurzbeschreibung"
BackgroundColor="#00000000"
TextColor="#272727"
HorizontalOptions="Center"
VerticalOptions="Center">
</Entry>
</Grid>
现在,如您所见,此网格内有布局,在第 1 列。
现在我想用红色框以编程方式交换该网格的内容:
private void SetLayoutForTakers()
btn_dummy_piccat2.IsVisible = false;
entry_descri_pickcate.IsVisible = false;
Grid grid = new Grid(); //Neues Grid
BoxView bx = new BoxView();
bx.Color = Xamarin.Forms.Color.Red;
grid.Children.Add(bx);
row5_piccat.Children.Add(grid);
但是红色框总是设置在第一列而不是第二列(这里是数字 1,因为它是基于 0 的)。
如何处理已存在图像按钮和条目的特定列,禁用它们(已完成)并仅在此列中显示一个红色框? (第 0 行,第 1 列)?
谢谢你:)
【问题讨论】:
【参考方案1】:Grid.Children.Add
有一个重载,可让您指定行和列
myGrid.Children.Remove(oldView);
myGrid.Children.Add(newView,row,col);
【讨论】:
以上是关于Xamarin.Forms:以编程方式将子项添加到网格的某些列的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式从Xamarin.Forms ScrollView中删除内容?
xamarin.forms以编程方式将行高设置为0会导致不需要的空间
如何访问 Xamarin.Forms 中以编程方式创建的 UI 元素:timepicker
我可以以编程方式更改 Xamarin.Forms 中的 styles.xml 吗?