【问题标题】:Windows Phone - RichTextBox text wrappingWindows Phone - RichTextBox 文本换行
【发布时间】:2013-07-13 19:41:47
【问题描述】:

我创建了用于显示新闻的控件。每个新的都包含文本和图像。 Here我找到了 RichTextBox 的示例:

<RichTextBox VerticalAlignment="Top">
    <Paragraph
        TextAlignment="Left">
        <InlineUIContainer>
            <InlineUIContainer.Child>
                <Rectangle
                    Width="50"
                    Height="50"
                    Fill="Red" />
            </InlineUIContainer.Child>
        </InlineUIContainer>
        <InlineUIContainer>
            <Border>
                <TextBlock
                    Padding="0"
                    Width="370"
                    Margin="0,0,0,-5"
                    TextWrapping="Wrap"
                    Text="First part of text that fits to the right of the image before the other part wraps to">
                </TextBlock>
            </Border>
        </InlineUIContainer>
        <Run
            Text="the next line. This part of the text is already below the image." />
    </Paragraph>
</RichTextBox>

但是有问题:new 包含一个文本块 (&lt;p&gt;...&lt;/p&gt;),我不能从示例中动态地将文本划分为 2 个文本块。我该如何解决我的问题?谢谢你。 UPD:这是我的控件的标记:

<UserControl>
    <Grid x:Name="LayoutRoot" Background="{StaticResource PhoneChromeBrush}" Margin="0,0,0,-100">     
        <TextBlock x:Name="tblNewName" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="460" Height="50" TextAlignment="Center" FontFamily="Mangal"/>
        <Grid Height="105" Width="441">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="97*"/>
                <ColumnDefinition Width="344*"/>
            </Grid.ColumnDefinitions>
            <Image x:Name="imgThumbnail" Grid.ColumnSpan="2" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"/>
            <TextBlock Grid.Column="1" x:Name="tblNewTeaser" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" Width="460" Height="50" TextAlignment="Center" FontFamily="Mangal"/>
        </Grid>
    </Grid>
</UserControl>

我需要在图像周围的文本块中换行。

【问题讨论】:

    标签: c# windows-phone-7 xaml


    【解决方案1】:

    您要显示什么数据? 这是 HTML 吗? 给我一个新闻数据的例子。

    更新: 你需要的是:

     public class NewsItem
        {
            public string ImageUri { get; set; }
            public IEnumerable<string> Paragraphs { get; set; }        
        }
    
    <DataTemplate x:Key="newsTemplate">
                <Grid Height="105" Width="441">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="97*"/>
                        <ColumnDefinition Width="344*"/>
                    </Grid.ColumnDefinitions>
                    <Image Grid.ColumnSpan="2" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"/>
                    <ListBox Grid.Column="1" ItemsSource="{Binding Paragraphs}"></ListBox>
                </Grid>
            </DataTemplate>
    
    <Grid x:Name="colorPlace" Grid.Row="1" Margin="12,0,12,0"/>        
    <ListBox Grid.Row="1" Name="newList" ItemTemplate="{StaticResource newsTemplate}">
    
    </ListBox>
    </Grid>
    

    最后:

    var data = new List<NewsItem>
                           {
                               new NewsItem
                               {
                                   ImageUri = String.Empty,
                                   Paragraphs = new[]
                                                {
                                                    "blablabla",
                                                    "blablabla",
                                                    "blablabla"
                                                }
                               },
                               new NewsItem
                               {
                                   ImageUri = String.Empty,
                                   Paragraphs = new[]
                                                {
                                                    "blablabla",
                                                    "blablabla",
                                                    "blablabla"
                                                }
                               }
                           };
    

    【讨论】:

    • 感谢您的回复。我已经更新了我的问题并添加了我的控制代码。我已经为它编写了 DependencyProperty 及其所有逻辑,但我不知道如何在图像周围创建文本环绕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 2013-10-10
    • 1970-01-01
    • 2011-11-11
    • 2012-01-02
    • 2010-11-24
    • 1970-01-01
    相关资源
    最近更新 更多