2015-05-21 2 views
0

Добрый день всем,Xaml Сетка с TextBlock

У меня есть небольшая проблема, которая может показаться легко, но для того, что у меня там нет никакого решения пока нет.

Я пытался предоставить информацию для принятия решения как можно проще, чтобы быть понятными:

У меня есть сетка с 2 столбцами и строками 2 и я хочу, чтобы поместить текст в 3-х из 4-й случаев.

Это то, что я имею сейчас:

<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

В картине выше, я хочу, чтобы текст в 3-х из 4-х случаях. Если у вас есть решение или обходное решение, дайте мне знать.

+0

Можете ли вы разместить макет/рисунок того, что вы пытаетесь сделать? – Fred

+0

Попробуйте использовать элемент run для форматирования разделов текста отдельно. – Versatile

+0

Возможно, с двумя TextBox? Один в первой строке (оба столбца), а второй во второй строке, первый столбец? – Kryptos

ответ

0

ОК, я больше работать на этом и на основе ответа Джонатон (ваша ссылка не кажется, для WinRT/Windows Phone), я проверил на WP эквивалент и я получаю Раздел для WP 8.0 и RichTextBlock с RichTextBlockOverflow в 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> 

Я попытаюсь реализовать его на мой проект, я загружу любую важную информацию.

Спасибо за помощь.

0

Посмотрите на Flow Documents. Они позволяют настраивать способ выделения текста в документе.

В правом нижнем углу (при условии, что это 4-й случай, когда вы не хотите текст) поместите в него BlockUIContainer. Контейнер может быть пустым или скрытым, а не сбрасываться, так что макет все еще применяется. Это заставляет текст не посягать на контейнер.

Смежные вопросы