Показать символ 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, вы должны предоставить то, что вам нужно.