【问题标题】:Windows Phone TextWrapping doesn't work in gridWindows Phone TextWrapping 在网格中不起作用
【发布时间】:2013-04-26 14:23:37
【问题描述】:

我的申请有问题。我想制作一个页面,将在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>

如何解决这个问题?

【问题讨论】:

    标签: c# xaml windows-phone


    【解决方案1】:

    问题是您的列设置为width="Auto" 这将使它们随心所欲地增长实际上,这将根据需要增长以容纳所有内容。

    你应该像这样改变它:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多