我有一个奇怪的问题!我想要一个正方形网格(需要是方形的,因为这里会出现相机输入),而其余部分可以扩展。然而绿色方块出现在我的设计师中,当它运行时它就消失了。我已经测试了可见性但它也无法点击。有谁知道这里出了什么问题?
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="3*" x:Name="bottomRow"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="250"/>
</Grid.ColumnDefinitions>
<Grid Width="{Binding ActualHeight, ElementName=bottomRow, Mode=OneWay}" Name="CameraGrid" Margin="20" Grid.Row="1" Grid.Column="0" Background="Green">
</Grid>
</Grid>
答案 0 :(得分:0)
您的外部网格没有宽度或高度,您可以在设计时看到它,因为设计时间宽度和高度值。
答案 1 :(得分:0)
您似乎违反了外部网格约束:您的目标行是3 *高度和1 *宽度,然后您指示内部网格应该更改其尺寸,而不管之前的XAML说什么。
让我们以另一种方式解决它。如果您需要固定大小(或比率)单元格,请在外部网格行/列定义中定义它。这样,我们的内部网格将发挥安全性,并且可以消耗通过外部网格单元分配的精确空间。
答案 2 :(得分:0)
只需从代码中删除Width="{Binding ActualHeight, ElementName=bottomRow, Mode=OneWay}"
,您的网格就会在执行代码时在UI中完美弹出。
你能解释为什么需要绑定宽度吗?如果没有必要,则删除宽度绑定。无论如何,网格都会尝试占用空间。
编辑:要具有统一的高度和宽度:Width="{Binding ActualHeight, RelativeSource={RelativeSource Self}, Mode=OneWay}"
答案 3 :(得分:0)
使用其他网格包裹网格,并在外部网格上设置Grid.Column
和Grid.Width
属性。然后你可以将内部网格绑定到它的高度。
<Grid Name="CameraGrid" Margin="20" Grid.Row="1" Grid.Column="0" >
<Grid Width="{Binding ActualHeight, Mode=OneWay, RelativeSource={RelativeSource Self}}" Background="Green">
</Grid>
</Grid>