Я заметил, что когда я меняю высоту элемента управления TextBox
в WinUI 3 XAML, меняется общая высота элемента управления (а не только область ввода), и он обрезает нижнюю часть области ввода, если я сделаю высоту меньше примерно 56, если есть заголовок. Например:
<TextBox
x:Name = "MyTextBox"
Height = "45"
Width = "Stretch"
Header = "A Text Box" />
Есть ли способ обойти это? Легко сделать текстовое поле выше, но я хочу, чтобы область ввода была короче, чем по умолчанию.
В DefaultTextBoxStyle
,
MinHeight
установлено на TextControlThemeMinHeight
(по умолчанию: 32
)Padding
установлено на TextControlThemePadding
(по умолчанию: 10,5,6,6
)Попробуйте установить MinHeight
и Padding
на 0
:
<TextBox
x:Name = "MyTextBox"
Height = "45"
MinHeight = "0"
Padding = "0"
Header = "A Text Box"
Text = "ABCDE" />
Если вы не знакомы с DefaultTextBoxStyle
, проверьте файл generic.xaml.
Когда отображается полная высота TexBox
, у нижнего края области ввода появляется небольшая черная рамка. Приведенное выше решение позволяет тексту в области ввода занимать меньше места, но не уменьшает высоту области ввода текста.
Ты прав. В дополнение к Padding
, установка MinHeigh
на 0
должна помочь.
Он по-прежнему просто обрезает нижнюю часть области ввода, из-за чего она выглядит несовместимой с другими текстовыми полями, имеющими черную рамку внизу.
Я добавил изображение в свой ответ. С вашей стороны все по-другому?
Странный. Я добавил ваше текстовое поле XAML в свой проект, и это сработало. Потом тот, с которым я начал работать. У меня нет объяснений. Принят ответ.
Вы можете изменить высоту заголовка или области ввода, найдя их с помощью
VisualTreeHelper
. См. также stackoverflow.com/questions/78405137/…