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

Silverlight 如何在xaml中自动折叠网格列?,silverlight,xaml,Silverlight,Xaml,基本上,我从服务中获取一些数据,并将结果显示在列表框中。项目的模板使用网格。注:如果有更好的方法,请告诉我 <Grid> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Image Grid.Column="0"/> <TextBlo

基本上,我从服务中获取一些数据,并将结果显示在列表框中。项目的模板使用网格。注:如果有更好的方法,请告诉我

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

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


我已经尝试过几种不同的方法,但都没有成功。当没有返回图像时,如何折叠此列?

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


<Grid>
   <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto"/>
       <ColumnDefinition Width="*"/>
   </Grid.ColumnDefinitions>
   <Image Grid.Column="0"/>
   <TextBlock Grid.Column="1"/>
</Grid>
将图像列宽设置为“自动”将根据图像大小调整列宽。如果没有图像,则大小将设置为0。文本列设置为
*
,这样它总是占用所有可用空间

注意:如果图像较大,可能还需要设置
MaxWidth