2012-03-01 13 views
0

メインページに単純なListBoxを作成しましたが、追加されたアイテムのデフォルト間隔が大きすぎます(アイテムの高さが2倍になるように)。私はDataTemplateを変更しようとしましたが、0マージン/パディングをItemContainerStyleに適用すると成功しませんでした。ListBoxItemが通常のサイズの2倍

ListBoxItemのコンテンツのサイズを変更する際に、どのプロパティが高さに影響しますか?フォントファミリを変更しても効果はありません。

+1

あなたがListBox.ItemTemplate' 'のために使用しているコードを投稿することができます。 – peterept

+0

これは、単純な 'ListBox'でウィザードで生成されたコードといくつかの項目が問題を再現するのとは無関係です。カスタムの 'DataTemplate'で問題を解決しようとしましたが、問題がなければまだ表示されています。ありがとう! – wpfwannabe

+0

@wpfwannabeデフォルトで作成されていても、あなたが見ているものと、代わりにそのようにしたいものの例を示すことができます。 –

答えて

1

あなたが探しているのは、アイテムの行が終了して次の行が始まる場所の間のスペースだと思います。ウィザード

コード生成:

<StackPanel Margin="0,0,0,17" Width="432" Height="78"> 

は、行の高さは、列間の17ピクセルギャップが78であることを言っています。

何が起こっているのかを調べる最も簡単な方法は、要素の後ろに色付きの境界線を置くことです。私は下でそれをしました。その後、高さ、または余白をChangngどの要素に属しているものを明確にスペース明白です:そこの子供たちは、各項目の全体の高さを決定するよう

 <!--ContentPanel contains ListBox and ListBox ItemTemplate. Place additional content here--> 
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,,0"> 
     <ListBox x:Name="MainListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="MainListBox_SelectionChanged" Background="Red"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Margin="0,0,0,17" Width="432" Height="78"> 
         <Border Background="Yellow"> 
          <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" /> 
         </Border> 
         <Border Background="Blue"> 
          <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
         </Border> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </Grid> 
+0

よろしくお願いいたします。これは私のところでは普通の愚かさでした。私の 'ListBox'エントリはプレーンな文字列であり、なんらかの理由でそれぞれの行に新しい行が追加されていました。これはダブルラインの高さを引き起こしていました。しかし、あなたの努力に感謝します。 – wpfwannabe

関連する問題