如何在xaml中自动折叠网格列?

时间:2011-10-11 15:32:37

标签: silverlight xaml

基本上我从服务中获取一些数据并在列表框中显示结果。项目的模板使用网格。注意:如果有更好的方式让我知道。

<Grid>
   <Grid.ColumnDefinitions>
       <ColumnDefinition/>
       <ColumnDefinition/>
   </Grid.ColumnDefinitions>
   <Image Grid.Column="0"/>
   <TextBlock Grid.Column="1"/>
</Grid>

问题是,有时候不会返回图像。在这种情况下,图像的列应该折叠,文本列应占用整个宽度。

enter image description here

我已经尝试了几种不同的方法,没有运气。如果没有返回图像,如何折叠此列?

2 个答案:

答案 0 :(得分:2)

<Grid>
   <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto"/>
       <ColumnDefinition Width="*"/>
   </Grid.ColumnDefinitions>
   <Image Grid.Column="0"/>
   <TextBlock Grid.Column="1"/>
</Grid>

将图像列宽设置为自动将根据图像大小调整列宽。如果没有图像,则大小将设置为0.文本列设置为*,这样它总是占用所有可用空间。

注意:如果图片很大,您可能还需要设置MaxWidth

答案 1 :(得分:0)

您可以使用Expander控件并设置IsExpanded属性。