Показать символ Ellipsis (...), когда текст превышает диапазон WPF
У меня есть один TextBlock с шириной 100. Когда длина текста является большой, я хочу показать символы, которые размещены в этом текстовом блоке и (...), кроме текста, чтобы указать пользователя, что больше текста также там. Нажав на эту кнопку (...), полный текст будет показан в отдельном всплывающем окне.
Итак, я хочу, чтобы динамическая (...) кнопка отображалась всякий раз, когда длина текста превышает размер текстового блока. Пожалуйста, ответьте
Ответы
Ответ 1
Это не совсем то, что вы хотите, но это аналогичная идея и просто использует испеченный материал:
<TextBlock MaxWidth="200"
Text="{Binding YourLongText}"
TextTrimming="WordEllipsis"
ToolTip="{Binding YourLongText}" />
Итак, у вас есть TextBlock с максимальной шириной, и когда текст не подходит, отображается эллипсис ( "..." ). Наведение курсора мыши на TextBlock с помощью мыши покажет полный текст в ToolTip.
Ответ 2
Просто воспользуйтесь тем же требованием для добавления многоточия на кнопке, чтобы добавить здесь решение
<Style x:Key="editButton" TargetType="{x:Type Button}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Left" VerticalAlignment="Center" >
<ContentPresenter.Resources>
<Style TargetType="TextBlock">
<Setter Property="TextTrimming" Value="CharacterEllipsis"></Setter>
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Transparent"/>
</Trigger>
</Style.Triggers>
</Style>
Обратите внимание на ресурсы в презентаторе контента.
Ответ 3
Я считаю, что вы хотите установить свойство TextTrimming. Устанавливая его в WordElilipsis или CharacterEllipsis, вы должны предоставить то, что вам нужно.