Кнопка TextImageRelation и TextAlign проблема - PullRequest
1 голос
/ 03 декабря 2010

При использовании Button в моих проектах ... они предоставляют свойство с именем TextImageRelation.Это используется, чтобы указать элементу управления, где расположить изображение кнопки относительно текста (я использую опцию ImageBeforeText).Теперь мне нужно выровнять текст по центру.

Логический результат, который я бы выбрал: изображение выровнено по левому краю, а текст кнопки расположен по центру в пространстве между изображением и правой границейКнопка.

Но не ... текст выравнивается рядом с изображением ИЛИ выравнивается по центру, но без учета изображения (не уверен, в каком случае).

Существует способизменить это поведение?

1 Ответ

1 голос
/ 03 декабря 2010

К сожалению, вы не можете.Макет определяется внутренним методом ButtonBaseAdapter.CommonLayout (), его нельзя переопределить.

TextImageRelation = Overlay выравнивает текст в соответствии с настройкой TextAlign.Изображение игнорируется.

Как только вы установите TextImageRelation = ImageBeforeText, текст всегда будет выровнен по часовой стрелке справа от изображения.Размер зазора фиксированный, 3 пикселя.Очень глупый, но в остальном эффективный способ переместить текст вправо - это поставить префикс перед текстом.Не достаточно хорошо, чтобы гарантировать, что это по центру.Обычно вы бы этого не хотели, заголовки кнопок должны совпадать.Обратите внимание, что RightToLeft = Yes дает вам больше способов повозиться, но не то, что вы ищете.

...