RichEditBox Обтекание текстом UWP
Я пытаюсь получить RichEditBox
взять на себя всю ширину окна приложения и реагировать на изменение размера окна, пока у меня есть следующий код:
<RichEditBox HorizontalAlignment="Stretch"
TextWrapping="WrapWholeWords"
Height="250"
Name="Intro"/>
Что я получаю из кода выше, это:
Любые идеи о том, как я могу заставить это работать? Почему я говорю тексту обернуть, а он не следует?
ОБНОВИТЬ
Я также попробовал это:
<RichEditBox HorizontalAlignment="Stretch"
Height="250"
Name="Intro"/>
Но результат:
Проблема, которая у меня возникла, заключается в том, что кажется, что HorizontalAlignment="Stretch"
на самом деле ничего не делает. Единственный способ установить приличную ширину - это жестко запрограммировать ее, например: Width="600"
, Но если я сделаю это, мой интерфейс не будет правильно реагировать на изменение размера. Я тоже пробовал HorizontalContentAlingment="Stretch"
но результат точно такой же.
Как я могу получить мой RichEditBox
занять все доступное Width
а также Wrap
в то же время?
1 ответ
Если вы посмотрите на документацию RichEditBox.TextWrapping, вы заметите, что WrapWholeWords
является недействительным. Вы должны использовать
<RichEditBox TextWrapping="Wrap"/>
-or-
<RichEditBox TextWrapping="NoWrap"/>
Поскольку Wrap является значением по умолчанию, вы можете удалить свойство.
<RichEditBox HorizontalAlignment="Stretch"
Height="250"
Name="Intro"/>
Изменить: в ответ на обновленный вопрос:
Элемент управления принимает только ширину родительского элемента управления. Некоторые элементы управления контейнером (например, Grid
) автоматически принимает всю доступную ширину, в то время как другие (например, StackPanel
) брать только необходимый размер это дети. С помощью HorizontalAlignment="Stretch"
в сочетании с StackPanel
как родительский элемент управления, будет использовать только MinWidth
свойство вместо полной доступной ширины на вашем экране. Иногда вы не можете непосредственно увидеть эту проблему, например, когда ваш элемент управления находится внутри шаблона элемента ListView
, Используйте Live Visual Tree в Visual Studio, чтобы найти родительские контейнеры и найти проблему.
Короче говоря: убедитесь, что ваш RichEditBox находится внутри Grid (или аналогичного элемента управления) вместо StackPanel.