Xamarin Forms:修改Grid中控件的位置与跨度
直接修改Grid附加属性即可,无需移除/添加控件
当然有更高效的方法!你完全不用通过grd.Children.Remove再Add的方式折腾——WPF里的Grid.Row、Grid.RowSpan这类属性都是附加属性,可以直接在C#代码里通过静态方法修改,Grid会自动更新布局。
举个具体的例子,假设你要调整的是名为myLabel的Label控件:
// 设置控件所在的行 Grid.SetRow(myLabel, 1); // 设置控件跨占的行数 Grid.SetRowSpan(myLabel, 2);
如果需要调整列相关的位置和跨度,用法完全一致:
// 设置所在列 Grid.SetColumn(myLabel, 0); // 设置列跨度 Grid.SetColumnSpan(myLabel, 3);
要是你需要读取当前的属性值,也可以用对应的Get方法:
int currentRow = Grid.GetRow(myLabel); int currentRowSpan = Grid.GetRowSpan(myLabel);
这种方式的优势很明显:不用破坏控件的现有状态(比如绑定的事件、数据上下文都能保留),而且布局更新更高效,完全是修改Grid布局的标准做法。
内容的提问来源于stack exchange,提问作者LuizLoyola
相关产品推荐
相关产品推荐

