我的Windows Phone 7.5应用程序中有以下列表框。基本上,列表框的ItemTemplate包含图像,一些文本,然后是图像。
如果我将一个或两个图像上的Visibility属性设置为Collapsed,我希望文本列扩展到其最大大小(而不是换行文本),例如占用之前由图像占据的空间。相反,当我将图像的Visility设置回Visible时,我希望图像显示和文本收缩。
如何在Xaml中实现类似的功能?
<ListBox x:Name="MainListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" >
<ListBox.Resources>
<BitmapImage x:Key="ProjectIcon" UriSource="Images/Dark/appbar.delete.rest.png" />
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="58"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="58"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{StaticResource ProjectIcon}" Visibility="Collapsed" Width="48" Height="48" />
<StackPanel Grid.Column="1" Margin="0,0,0,17" Width="432" Height="78" Orientation="Vertical">
<TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
<TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
</StackPanel>
<Image Grid.Column="2" Source="{StaticResource ProjectIcon}" Visibility="Visible" Width="48" Height="48" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:1)
如何将第0列和第2列的宽度设置为自动,并将它们的MaxWidth设置为58?