Могу ли я использовать TextBlock TextTrimming для обрезки только первого прогона, а не всего? - PullRequest
2 голосов
/ 12 января 2012

У меня есть такой текстовый блок:

  <TextBlock TextWrapping="Wrap" TextTrimming="CharacterEllipsis" MaxHeight="50">
    <TextBlock.Inlines>
      <Run Text="Some text that might be long so I want it wordwrapped." />
      <Run Text="Link" />
    </TextBlock.Inlines>
  </TextBlock>

Второй прогон отформатирован как гиперссылка.К сожалению, когда первый прогон достаточно длинный, чтобы вызвать многоточие, ссылка обрывается.Я бы хотел, чтобы это произошло:

Some text that might
be long so I...  Link

Можно ли это сделать?

1 Ответ

2 голосов
/ 12 января 2012

Если для параметра TextTrimming установлено значение CharacterEllipsis, я предполагаю, что вы хотите, чтобы он обрезал слишком длинную строку.

Ex)

<TextBlock.Inlines>
  <Run Text="Some text that might be long so I want it wordwrapped." />
  <Run Text="Link" />
</TextBlock.Inlines>

Должен показать
«Какой-то текст, который может быть длинным ...»
"Ссылка"

<TextBlock TextWrapping="NoWrap" TextTrimming="CharacterEllipsis" MaxHeight="50">
   <TextBlock.Inlines>
      <Run Text="Some text that might be long so I want it wordwrapped." />
      <Run Text="Link" />
   </TextBlock.Inlines>
</TextBlock>

Если это то, чего вы хотите достичь, просто удалите TextWrapping = "Wrap"

Вот несколько вещей, на которые стоит взглянуть:

Это должен быть один TextBlock ? Если нет, вы можете сделать следующее ...

<WrapPanel>
    <TextBlock Text="Some text that might be long so I want it wordwrapped. " TextWrapping="Wrap"/>
    <TextBlock TextWrapping="Wrap">
       <Hyperlink NavigateUri="http://www.stackoverflow.com">Link</Hyperlink>
    </TextBlock>
</WrapPanel>

Должен ли это быть TextBlock ? Если нет, вы можете сделать следующее ...

<RichTextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" BorderBrush="Transparent">
<FlowDocument>
    <Paragraph>
        Some text that might be long so I want it wordwrapped.
        <Hyperlink NavigateUri="http://www.stackoverflow.com">Link</Hyperlink> .
    </Paragraph>
</FlowDocument>

Эти решения помогают?

...