Недавно я испытал странное поведение текстовых полей.ExtentWidth TextBox не установлен правильно
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="200"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Label Content="Test"/>
<TextBox Grid.Column="1" TextWrapping="Wrap" Text="testtesttesttesttesttesttesttesttesttesttest"/>
<Control Grid.Row="1" Grid.ColumnSpan="2" Width="280"/>
</Grid>
В этом примере кода У меня есть Grid
с 2 строк и столбцов 2. Второй столбец установлен на фиксированной шириной. Номер TextBox
имеет TextWrapping
установлен на Wrap
.
Во втором ряду у меня есть Control
с фиксированной шириной, которая выше, чем Grid
. Это увеличивает ActualWidth
второй колонны от 200 до 250.
Фактическая ширина TextBox
также увеличивается, чтобы соответствовать новой ширине столбца.
Когда я теперь добавляю длинную строку в текстовое поле, текст не использует всю ширину TextBox
, а вместо этого обматывает путь до начала и оставляет около 40 пикселей в конце TextBox
пустым.
Я выяснил, что у TextBox
есть только ExtentWidth
. Это свойство отвечает за упаковку. В моем примере значения ExtentWidth
составляют около 180, что составляет 200 от ширины столбца сетки минус поля и прокладки.
Что можно сделать, чтобы зафиксировать упаковку в TextBox
?
EDIT: Этот вопрос не является дубликатом Looking for explanation for WPF Grid ColumnSpan behavior. Этот вопрос объясняет, что происходит с ширинами столбцов сетки. Но он не отвечает на вопрос об обертывании TextBox.
Это поведение, по-видимому, не зависит от ширины «управления». Это вызывает «Grid.ColumnSpan =« 2 »». Я не знаю, это воля или нет ?! «Grid.ColumnSpan» также может быть ошибкой автокоррекции. – Jens
Возможный дубликат [Ищет объяснения для поведения столбцов WPF Grid ColumnSpan] (http://stackoverflow.com/questions/5679081/looking-for-explanation-for-wpf-grid-columnspan-behavior) – Jens
@Jens Horstmann: столбцы диапазон был установлен намеренно. И да, это часть проблемы. Что касается возможного дубликата, см. Мое редактирование. – raznagul