Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Выравнивание текста по центру внутри кнопки?


Автор: exBlender 2.9.2010, 22:10
Есть кнопка с иконкой и текстом (вроде тех, что в MS Office).
В темплейте этой кнопки ContentPresenter служит для размещения иконки, а для названия имеется TextBox. 
Если название из двух строчек (wrapped), то короткая строчка прижимается к левому краю, т.е. HorizontalContentAlignment="Center" не работает.

Внутри темплейта кнопки нет ничего, что могло бы задать выравнивание по левому краю. Если вытащить этот TextBox из темплейта и разместить где-нибудь в другом месте, то короткая строчка выравнивается по центру. 

Есть ли у кого-нибудь идеи, почему темплейт загоняет выравнивание влево?

Тнх.

Автор: SKrivosein 2.9.2010, 23:08
Не совсем понял как оно у тебя организовано. А попробовать внутри кнопки кинуть Grid с сеткой а туда всё остальное?

Автор: exBlender 3.9.2010, 17:58
У меня внутрь кнопки много чего напихано, но если вычленить проблему, то вот она:

Возьмем стандартный темплейт кнопки. В нем - ContentPresenter, который, к примеру, содержит TextBlock, выровненный по центру. Это название кнопки, создающееся динамически. Название состоит из 2 слов, короткого и длинного. 
Длина кнопки ограничена, и если название получается слишком длинным, слова выстраиваются в 2 строчки. При этом то слово, что длиннее, определяет длину TextBlock-а и выстраивается горизонтально точно по центру, но короткое слово съезжает левее центра и подравнивается по левому краю длинного.

Я ищу простой метод выравнивания короткого слова точно по горизонтали, желательно только средствами xaml (без C#).

Автор: SKrivosein 3.9.2010, 18:16
 Добавь в разметку техт бокса TextAlignment="Center", вроде как  всё  smile 

Автор: exBlender 3.9.2010, 18:28
Да, это оно, спасибо smile 
Только в случае техт бокса HorizontalContentAlignment внутри темплейта не работало, а TextBlock TextAlignment="Center" работает. Я редко общаюсь с текст-блоками, не знал.

Автор: SKrivosein 3.9.2010, 18:48
Мы http://forum.vingrad.ru/forum/topic-290486/anchor-entry2090554/0.html  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)