Xaml 带有文本块的网格

Xaml Grid with TextBlock

大家下午好,

我有一个看似简单的小问题,但目前还没有解决方案。

我尝试提供信息以使解决方案尽可能简单易懂:

我有一个包含 2 列和 2 行的网格,我想在 4 个案例中的 3 个案例中放置文本。

这是我目前拥有的:

<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
    <Grid.RowDefinitions>
        <RowDefinition Height="100" />
        <RowDefinition Height="100" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="100" />
    </Grid.ColumnDefinitions>

    <TextBlock Grid.RowSpan="2" Grid.ColumnSpan="2" Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
               In nec pharetra leo. Donec quis faucibus elit. 
               Praesent vel risus libero. 
               Curabitur neque urna, pulvinar eu imperdiet feugiat, molestie sit amet orci.
               Sed purus est, vehicula in tortor et, blandit dictum dolor.
               Etiam fringilla non purus sed vulputate.
               Maecenas id sagittis lorem, et ultricies massa.
               Nullam bibendum dolor vel ipsum cursus congue. 
               Quisque ac molestie mi. Etiam ac ex quam. 
               Fusce tempus eros nec ultrices condimentum. 
               Proin malesuada sem id suscipit vehicula. 
               Integer risus nibh, ultricies eget rhoncus sit amet, mattis id quam. 
               Mauris ac augue sit amet nulla scelerisque sollicitudin. 
               Duis ac nulla sem. Sed elementum ac tortor vel finibus.
               Ut magna diam, efficitur a cursus a, commodo ut risus.
               Mauris elementum nulla tortor, a egestas ipsum luctus et.
               Fusce quis dui purus.
               Donec aliquam fermentum diam vitae vulputate. 
               Donec at quam condimentum nunc efficitur consequat.
               Mauris id porttitor tortor.
               Nunc odio diam, ullamcorper id neque non, molestie volutpat elit. 
               Ut rutrum dignissim ex, et hendrerit massa tincidunt eget. "
               TextWrapping="Wrap"/>

</Grid>

Grid

在上图中,我想在4个案例中的3个中有文字。 如果您有任何解决方案或解决方法,请告诉我。

看看Flow Documents。它们允许您自定义文档中文本的布局方式。

右下角,(假设这是第 4 种情况你不需要文字)在里面放一个 BlockUIContainer。容器可以是空的或隐藏的,而不是折叠的,因此布局仍然适用。这会强制文本不会侵占容器。

好的,我在这方面做了更多工作,并根据 Johnathon 的回应(你的 link 似乎不适合 winrt/windows phone),我检查了 WP 等价物,我获取 WP 8.0 的 SectionRichTextBlock with RichTextBlockOverflow in winrt.

Here is a great tutorial for that.

我试图在我的第一个例子中实现它,这就是我所拥有的:Grid v2

这是代码:

<Grid VerticalAlignment="Center" HorizontalAlignment="Center">
    <Grid.RowDefinitions>
        <RowDefinition Height="200" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>

    <RichTextBlock 
        x:Name="RtbSource"
        Grid.ColumnSpan="2"
        OverflowContentTarget="{Binding ElementName=RtboFirst}"
        TextTrimming="WordEllipsis" 
        TextWrapping="WrapWholeWords">
        <Paragraph>
            <Run Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
               In nec pharetra leo. Donec quis faucibus elit. 
               Praesent vel risus libero. 
               Curabitur neque urna, pulvinar eu imperdiet feugiat, molestie sit amet orci.
               Sed purus est, vehicula in tortor et, blandit dictum dolor.
               Etiam fringilla non purus sed vulputate.
               Maecenas id sagittis lorem, et ultricies massa.
               Nullam bibendum dolor vel ipsum cursus congue. 
               Quisque ac molestie mi. Etiam ac ex quam. 
               Fusce tempus eros nec ultrices condimentum. 
               Proin malesuada sem id suscipit vehicula. 
               Integer risus nibh, ultricies eget rhoncus sit amet, mattis id quam. 
               Mauris ac augue sit amet nulla scelerisque sollicitudin. 
               Duis ac nulla sem. Sed elementum ac tortor vel finibus.
               Ut magna diam, efficitur a cursus a, commodo ut risus.
               Mauris elementum nulla tortor, a egestas ipsum luctus et.
               Fusce quis dui purus.
               Donec aliquam fermentum diam vitae vulputate. 
               Donec at quam condimentum nunc efficitur consequat.
               Mauris id porttitor tortor.
               Nunc odio diam, ullamcorper id neque non, molestie volutpat elit. 
               Ut rutrum dignissim ex, et hendrerit massa tincidunt eget. "/>
        </Paragraph>

    </RichTextBlock>
    <RichTextBlockOverflow 
        x:Name="RtboFirst"
        Grid.Row="1" />

</Grid>

我会尝试在我的项目中实现它,我会上传任何重要信息。

感谢您的帮助。