文本块为列表框项目模板中的每个项目应用换行符
Textblock apply linebreak for each item in listbox item template
我有以下 xaml 列表框代码。事情是我想在呈现每个文本块的末尾应用换行符。目前我只在第一项的末尾换行。但是我没有得到剩余项目的换行符。请帮忙。不要担心列表框的 Itemsource 是从 cs 绑定的。
<ListBox Name="lstreviews" ScrollViewer.VerticalScrollBarVisibility="Auto" Height="470">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Name:"></TextBlock>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding author_name}"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="0" Text="Rating:"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding rating}"></TextBlock>
<TextBlock Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" TextWrapping="Wrap" Width="360" Text="{Binding text}">
<LineBreak></LineBreak>
</TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
一个换行符就是空的space。只需为您的网格添加底部边距。你把换行符弄得太复杂了:)。
您只需要像建议的那样指定边距
<TextBlock Grid.Row="0" Grid.Column="0" Margin="10" Text="Name:"></TextBlock>
我有以下 xaml 列表框代码。事情是我想在呈现每个文本块的末尾应用换行符。目前我只在第一项的末尾换行。但是我没有得到剩余项目的换行符。请帮忙。不要担心列表框的 Itemsource 是从 cs 绑定的。
<ListBox Name="lstreviews" ScrollViewer.VerticalScrollBarVisibility="Auto" Height="470">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Text="Name:"></TextBlock>
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding author_name}"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="0" Text="Rating:"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding rating}"></TextBlock>
<TextBlock Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" TextWrapping="Wrap" Width="360" Text="{Binding text}">
<LineBreak></LineBreak>
</TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
一个换行符就是空的space。只需为您的网格添加底部边距。你把换行符弄得太复杂了:)。
您只需要像建议的那样指定边距
<TextBlock Grid.Row="0" Grid.Column="0" Margin="10" Text="Name:"></TextBlock>