2012-01-12 1 views
2

У меня есть TextBlock, как это:Могу ли я использовать TextBlock TextTrimming, чтобы обрезать только первый запуск, а не все?

<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 

Это можно сделать?

ответ

2

С 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»

Вот несколько вещей, чтобы посмотреть по адресу:

Должно ли быть one 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> 

Являются ли эти решения какой-либо помощи?

+0

Этого я не хочу достичь. Я хочу, чтобы ссылка прошла после текста, а не ниже. И я хочу, чтобы текст был обернут, так как у меня ограниченное горизонтальное пространство для работы. –

+0

Извините, никто из них, похоже, не делает то, что я хочу. Я хочу, чтобы текст был обернут и обрезан, если необходимо, но чтобы ссылка появилась на последней строке непосредственно после многоточия. –

+0

Прошу прощения, но я уверен, что вы не можете сделать это, не создавая собственный пользовательский TextBlock, который наследуется от TextBlock (и некоторых обманов) – MyKuLLSKI

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