假设我在xaml中有一个Image标签,并且希望是方形大小。
var $form = {
5: {
480: {
value: []
}
}
};
for (var $i = 0; $i < 6; $i++) {
$form[5][480]['value'][$i] = Math.floor(Math.random() * (6 - 4 + 1)) + 4;
}
console.log($form);
此处的演示代码有4个图像,将它们水平放置在网格中。宽度将同等定义。所以我希望高度与宽度相同。我可以像这样绑定自己
<Grid HorizontalOptions="Fill">
<Grid.RowDefinitions>
<RowDefinition Height="auto">
</RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Image></Image>
<Image></Image>
<Image></Image>
<Image></Image>
</Grid>
答案 0 :(得分:0)
除非你在代码中的其他地方专门设置它,否则你的WidthRequest将为-1,表示控件没有明确说明它想要的宽度,而是依赖布局系统来锻炼正确的尺寸。
所以这种绑定虽然在技术上是正确的,但是没用。 您可以尝试绑定到Width属性,该属性是readonly属性,一旦控件布局,它就会使用实际尺寸进行更新。
您还可以覆盖相应的事件并在那里指定所需的高度。
请记住,高度=“自动”的网格行将导致大量的布局计算。特别是在它们已经在可视化树中之后更改控件大小时。 您的布局运行**将是*慢。
我建议你找出更好的解决方案。例如,一旦布局引擎计算出该设备的单元格宽度,就会对网格行应用固定高度。