2011-12-01 17 views
3

テキストの折り返しに問題があります。 StackPanelがなければ、このTextBlockは機能しますが、テキストの前に小さな絵を置く必要があります。また、私は(私は最初の3行の1列のみを必要とする)StackPanelのテキストは折り返しません(wp7)

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <Grid> 
      <Grid.RowDefinitions > 
       <RowDefinition Height="60"/> 
       <RowDefinition Height="170"/> 
       <RowDefinition Height="50"/> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 

      <TextBlock Grid.Row="0"></TextBlock>         
      <TextBlock Grid.Row="1"></TextBlock>         
      <TextBlock Grid.Row="2"></TextBlock>         
      <StackPanel Grid.Row="3" Orientation="Horizontal"> 
        <Image Source="Picture.png" MaxHeight="20" MaxWidth="40" HorizontalAlignment="Center" Margin="0,20,0,0" /> 
        <TextBlock Text="Long long long text from Binding" FontSize="25" HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Bottom" Padding="20,10,0,0" /> 
      </StackPanel> 
     </Grid> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

答えて

2

StackPanelは、そのコンポーネントをOrientationに応じて、無限の高さや幅を提供します。このために2つの列を持っていません。私はあなたのXAMLを見れば

私は、グリッド内の2つの列を使用して、左側に画像を配置することをお勧め:最初のテキストボックスに

<ListBox.ItemTemplate> 
    <DataTemplate> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="40" /> 
       <ColumnDefinition Width="*" /> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions > 
       <RowDefinition Height="60"/> 
       <RowDefinition Height="170"/> 
       <RowDefinition Height="50"/> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="Auto"/> 
       <RowDefinition Height="Auto"/> 
      </Grid.RowDefinitions> 

      <TextBlock Grid.Row="0" Grid.ColumnSpan="2"></TextBlock> 
      <TextBlock Grid.Row="1" Grid.ColumnSpan="2"></TextBlock> 
      <TextBlock Grid.Row="2" Grid.ColumnSpan="2"></TextBlock> 
      <Image Grid.Row="3" Source="Picture.png" MaxHeight="20" HorizontalAlignment="Center" Margin="0,20,0,0" /> 
      <TextBlock Grid.Column="1" Grid.Row="3" Text="Long long long text from Binding" FontSize="25" 
         HorizontalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap" 
         VerticalAlignment="Bottom" Padding="20,10,0,0" /> 
     </Grid> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

お知らせGrid.ColumnSpan、これはそれらをまたがります最初の列だけでなく、グリッドの幅全体にわたって

+0

テスト済みです。ありがとう、私はそのようなColumnSpanオプションについて知りませんでした – Karloss

関連する問題