2009-07-20 15 views
11

私のListBoxには、とりわけ、かなり長いことがある説明フィールドがあります。横スクロールバーを使用する代わりに、単語を折り返したい MaxWidthを設定すると機能しますが、ListBoxのサイズが変更されているため、値をハードコードしたくありません。WPFリストボックスアイテムではないワードラッピング

これを行うにはどうすればよいですか?

編集:説明はTextBlockです。

簡体XAML(unnessesaryものを削除し、まだ問題を示しています

  <ListBox BorderThickness="0" Padding="5" Name="lstTasks"> 
      <ListBox.ItemsSource> 
       <Binding Source="{StaticResource dataTasks}"/> 
      </ListBox.ItemsSource> 

      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid> 
         <TextBlock Text="{Binding Path=RequestDescription}" TextTrimming="WordEllipsis" TextWrapping="Wrap" Height="60" /> 
        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
+0

MaxWidthを設定すると効果がありますので、MaxWidthを幅を変更するものにバインドするのはどうですか? –

答えて

29

は、リストボックスの幅であるためにあなたのListBoxItemsの幅を強制的に試してみてください。

<ListBox 
    Name="lstTasks" 
    BorderThickness="0" 
    Padding="5" 
    HorizontalContentAlignment="Stretch"> 

また、あなたは水平無効にしてみてくださいスクロール:

<ListBox 
    ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
    ...> 
+2

スクロールバーを無効にすると、即座に固定されました。 –

+0

ありがとうございます - 無効にすることも私のために働いた。 –

+0

それはあなたのために働いた場合、upvote。スタックのコメントはeBayの評価ではありません。 – Gusdor

0

ラッピングとtrの使用の意味はありません一緒にイミングする。テキストトリミングやテキストラッピングのいずれかを使用する必要があります。それはそれが包み込まれないトリムです。マットの答えをtextwrappingするため

あなたはまたはのmaxWidthプロパティの値を定義する必要がありますトリミングのために正しいです。

SL開発者にとってまったく同じです。

関連する問題