Xaml网格消失了

时间:2015-05-21 13:36:29

标签: c# wpf xaml grid

我有一个奇怪的问题!我想要一个正方形网格(需要是方形的,因为这里会出现相机输入),而其余部分可以扩展。然而绿色方块出现在我的设计师中,当它运行时它就消失了。我已经测试了可见性但它也无法点击。有谁知道这里出了什么问题?

                <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>

4 个答案:

答案 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.ColumnGrid.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>