Windows Phone TextWrapping在网格中不起作用

时间:2013-04-26 14:23:38

标签: c# xaml windows-phone

我的申请有问题。我想制作一个页面,它将在Grid中显示用户通知。在左侧将是个人资料图片,在右侧的个人资料名称,消息内容和时间。

我对包含邮件内容的TextBlock有疑问。  TextWrapping似乎不起作用。消息内容以单行显示,并将它们切成两半。

<ListBox Name="listaWpisow" SelectionChanged="listaWpisow_SelectionChanged">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid Margin="0,0,0,10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="auto"></ColumnDefinition>
                                <ColumnDefinition Width="auto"></ColumnDefinition>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"></RowDefinition>
                                </Grid.RowDefinitions>
                                <Image Source="{Binding av_url_64, Converter={StaticResource imgConv}}" Height="64" Width="64" Name="pictureBox" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left"></Image>
                            </Grid>
                            <Grid Grid.Column="1" Margin="25,0,0,0">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                    <RowDefinition Height="auto"></RowDefinition>
                                </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="auto"></ColumnDefinition>
                                </Grid.ColumnDefinitions>
                                <TextBlock Text="{Binding login}" TextWrapping="Wrap" FontWeight="Bold" Grid.Row="0" Grid.Column="0"></TextBlock>
                                <TextBlock Text="{Binding content}" TextWrapping="Wrap" Grid.Row="1" Grid.Column="0"></TextBlock>
                                <TextBlock Text="{Binding datetime_str}" FontSize="12" TextWrapping="Wrap" Grid.Row="2" Grid.Column="0"></TextBlock>
                            </Grid>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题是您的列设置为width="Auto"这会让他们按照自己的意愿增长。实际上,这会增加所需内容以适应所有内容。

你应该改变它:

<Grid.ColumnDefinitions>
    <ColumnDefinition Width="1*"></ColumnDefinition>
    <ColumnDefinition Width="3*"></ColumnDefinition>
</Grid.ColumnDefinitions>

这将使比率保持相等:第二列是第一列宽度的三倍。 (你应该根据你的具体需要调整它) 请注意,这需要在外部网格上完成,因为外部网格允许内部网格根据需要增长,并且内部网格增长所需的数量以容纳文本框中的长文本