А, да, така че предполагам, че е толкова просто, колкото изглеждаше. Просто трябва да ограничите ширината на мястото, където е вашият текст, и да извикате TextWrapping
, за което имате множество опции, за да постигнете това. Ето няколко възможности...
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" Margin="0,10,0,0" />
<TextBlock Text="{Binding title}" Margin="50,0,12,0" TextWrapping="Wrap" MaxWidth="{Binding ActualWidth, ElementName=Self}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
Или можете да накарате панел да го направи, който трябва да бъде ограничен от своя родител...
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0,10,0,0">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding imgurl}" MaxHeight="120" MaxWidth="120" />
<TextBlock Grid.Column="1" Text="{Binding title}" TextWrapping="Wrap" Margin="50,0,2,0" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
Или в зависимост от това как това ListBox е разположено като дъщерно, може дори да е толкова лесно, колкото просто да добавите TextWrapping="Wrap"
към TextBlock и след това да зададете MaxWidth
на самото ListBox. Така или иначе, надявам се това да помогне... :)
person
Chris W.
schedule
15.01.2013
TextWrapping="Wrap"
в TextBlock? - person Chris W.   schedule 16.01.2013