が、私はこのようなものを持っている、それは代わりにテキストをラップで膨張する:シルバーのTextBlockは
<ListBox ItemsSource="{Binding List}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Property}" TextWrapping="Wrap" Grid.Column="0"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
そして私がいる問題は、TextBlockには、グリッド列(およびリストボックス)を展開することですテキストが長すぎる場合は、期待どおりに折り返すのではなく、たぶん私はグリッドの星のサイジングの概念を完全に理解していないかもしれませんが、列の幅が "残りの空き領域"を意味する "1 *"に設定されているので、テキストブロックはそれを超えて拡大しようとすべきではない代わりにテキストを折り返す必要があります。
この問題を解決するにはどうすればよいですか?ところで、グリッド(またはその他のコンテナ)が必要なのは、Textblock以外のコンポーネントがあるからです。 ItemContainerStyleセクションもそこにあり、Listbox要素は全体のスペースを占有します。
ありがとうございます!
それは動作しませんでした。スクロールバーを使用せずに同じ動作(つまり、ラップされる代わりにコンテンツが拡張されます)が発生します。 – Paul
完全なXAMLコードを投稿できますか? ListBoxのサイズを変更する場合は、dataTemplateとHorizontalScrollを使用してテキストを折り返す必要があります。あなたのリストボックスがstackPanelの中にあるか、サイズを変更するために割り当てられていないものがありますか? – Leo
あなたは何を知っていますか?これは実際には*動作します!私はあなたの答えを再読し、私はあなたが示唆したもの以外の何かをしていたことに気付きました。どうもありがとう! – Paul