2016-07-01 2 views
-1

В UserControl, который находится внутри ListBox, у меня есть TextBlock с пропорциональной шириной (Width = "*") внутри Grid, что я хочу взять оставшуюся ширину сетки, но всякий раз, когда я изменяю размер ListBox до размера который будет зажимать содержимое TextBlock, я получаю полосу прокрутки. Как я могу закрепить ширину TextBlock, чтобы у меня не было горизонтальной полосы прокрутки? Идеально обрезать его с помощью многоточия.Как скопировать текстовый блок внутри пропорциональной сетки?

EDIT: Забыл упомянуть ListBox.

+0

Сетка фиксирует содержимое по умолчанию и не имеет поддержки прокрутки. Используете ли вы ListBox или ScrollViewer где угодно? Некоторый код был бы полезен. Поведение TextBlock в сетке по умолчанию похоже на то, что вы хотите. Используете ли вы TextBOX (имеется поддержка полосы прокрутки)? – Joe

+0

Да, эта сетка находится внутри UserControl внутри Listbox. – user1032861

+0

Off topic: Это 40 000-й вопрос 'xaml', поздравления OP. Однако никаких призов нет. –

ответ

1

В списке есть прокрутка, потому что это поведение по умолчанию - HorizontalScrollBarVisibility - Auto.

установка этого свойства для инвалидов Try:

<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 

Что касается отсечения к эллипсу, это сложнее. Вы можете клип на многоточие довольно легко, используя Clip свойство:

  <TextBlock Text="Some very long thing that I'm putting in here to clip" Background="Blue"> 
       <TextBlock.Clip> 
        <EllipseGeometry Center="100,8" RadiusX="100" RadiusY="8" /> 
       </TextBlock.Clip> 
      </TextBlock> 

Однако, чтобы держать центр, RadiusX и RadiusY для того, что вам придется привязать его к высоте и ширине текстового поля (возможно, используя конвертер до половины этих значений).

+0

Спасибо. Это сработало :) – user1032861