Вы можете попробовать использовать JTidy,
Tidy tidy = new Tidy();
tidy.setXHTML(true);
final InputStream inputStream = new FileInputStream("input.html");
tidy.parse(inputStream, System.out);
Да, это дизайном. StackPanel
выделит место TextBox
просит. Если Вы не установили ширину на TextBox
, это потребует, чтобы только достаточно ширины соответствовало своему тексту.
Ответ Кента кажется правильным.
Для тихого принуждения переопределяют поведение StackPanel, я думаю, что Вам были бы нужны к динамично вычислять-набору свойство Width содержавших элементов ИЛИ некоторое броское переопределение MeasureOverride. Я использовал бы другого менеджера/панель расположения. Некоторые вещи я отметил..
StackPanel расширит элементы на основе своего значения свойства Ориентации. Так
Значение по умолчанию является фрагментом и для HorizontalAlignment и для VerticalAlignment содержания, которое содержится в StackPanel.
Когда свойства Height и Width явно установлены на элементе, эти измерения берут более высокий прецедент во время расположения и отменят типичные эффекты установки HorizontalAlignment to Stretch.
Мне нужно, чтобы элементы имели одинаковый размер, но располагались вертикально.
Я использовал UniformGrid и установил для свойства Columns значение 1. (проверено с помощью TextBox, и оно растягивается, как вы хотите )