#silverlight #xaml #layout #windows-phone-7.1
#silverlight #xaml #макет #windows-phone-7.1
Вопрос:
В моем приложении Windows Phone 7.5 у меня есть следующий список. В основном ItemTemplate для listbox содержит изображение, некоторый текст, затем изображение.
Если я установлю для свойства видимости на одном или обоих изображениях значение «Свернутый», я бы хотел, чтобы текстовый столбец расширялся до максимального размера (а не переносил текст), например, занимал место, которое ранее занимали изображения. И наоборот, когда я устанавливаю видимость изображений обратно на видимую, я бы хотел, чтобы изображения отображались, а текст сжимался.
Как я могу сделать что-то подобное в 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>
Ответ №1:
Как насчет установки ширины обоих столбцов 0 и 2 на Auto и присвоения им максимальной ширины 58?