WPF TextBlock Переполнение текста слева - PullRequest
4 голосов
/ 11 марта 2010

В качестве фона у меня очень длинный идентификатор, который слишком длинный для отображения в заданной области TextBlock. Интересная часть идентификатора - это конец, то есть самая правая часть.

То, что я хотел бы сделать, это иметь TextBlock, а не текст, переполняющийся вправо и отсекающий крайнюю правую часть, переполняемый влево и отрезающий крайнюю левую часть.

Это дает идентификатор 123456 и TextBlock с достаточным пространством для размещения четырех символов, чтобы TextBlock отображал 3456 вместо 1234, как это происходит по умолчанию.

Я мог бы вручную обрезать свой ID для отображения, но учитывая переменный интервал шрифта, это не идеально. Так есть ли способ заставить WPF изменить направление переполнения?

Ответы [ 4 ]

5 голосов
/ 11 марта 2010

Вам просто нужно установить следующий атрибут FlowDirection = "RightToLeft" в XAML для TextBox

4 голосов
/ 11 марта 2010

Это тот эффект, который вы пытаетесь получить? Звучит так:

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <StackPanel Width="200">  
      <TextBlock Background="Honeydew" HorizontalAlignment="Right">
        The quick brown fox jumped over the lazy dog's back
      </TextBlock>
    </StackPanel>
</Page>
2 голосов
/ 11 марта 2010

Если вы также хотите показать полный текст, когда пользователь наводит указатель мыши на обрезанный текстовый блок, это немного сложно, но есть метод .

1 голос
/ 21 ноября 2012

Чтобы показать весь текст, когда пользователь наводит курсор на TextBox, просто свяжите всплывающую подсказку со свойством Text TextBox:

ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=Text}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...