2011-10-20 51 views
0

私はWindows Phone 7.5アプリケーションで次のリストボックスを持っています。基本的に、リストボックスのItemTemplateにはイメージ、テキスト、イメージが含まれています。スペースがある場合、グリッドの列を自動縮小する方法を教えてください。

画像のいずれかまたは両方のVisibilityプロパティをCollapsedに設定した場合、テキスト列を(テキストの折り返しではなく)最大サイズに拡大したいと思います。以前は画像によって占められていた空間を占領する。逆に、画像のVisibilityを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> 

答えて

1

列0と2の両方の幅を自動に設定して、MaxWidthを58に設定する方法はありますか?

関連する問題