Я использую Delphi XE3 и осваиваю стили. Я хочу изменить цвет кнопки. Я могу изменить цвет текста в порядке, но не могу найти свойство «заливка» в инспекторе стилей, возможно, из-за отсутствия TRectangle, только TSubimage и TRectAnimation для кнопки, и вся помощь, которую я могу найти, относится к TRectangle. Что мне не хватает?
Стиль заливки кнопки Firemonkey
Ответы (3)
В XE3 встроенные системные стили (Win7, WIn8, Mac, MacHD) используют растровые изображения для стилей, а не создают стили из примитивов. Стиль содержит изображение png, которое разделено на разделы для каждого элемента управления и различных состояний этих элементов управления. TSubImage используется для выбора соответствующей части изображения. Это может иметь дочерние TRectAnimations для изменения выбранной области для разных состояний.
Вероятно, лучший способ изменить такой стиль — сохранить встроенное изображение (см. http://delphihaven.wordpress.com/2012/09/11/inspecting-the-default-platform-fmx-styles).-in-xe3/ ), измените его, добавьте в свою пользовательскую книгу стилей и укажите на него SubImage вашего пользовательского стиля.
Имейте в виду, однако, что вам нужно будет продублировать вышеуказанное для всех платформ, которые вы используете, чтобы стиль соответствовал и загружал соответствующий во время выполнения.
И "buttonstyle", и "Cornerbuttonstyle" имеют "фон", который является TRectangle и имеет свойство заливки.
Вчера я столкнулся с похожей проблемой, пытаясь изменить цвет кнопки во время выполнения. В моем случае я пытался изменить свойство цвета, когда вид был установлен на градиент. Мне нужно было изменить либо цвета градиента, либо изменить вид на bkSolid.
Я использую Токио, и я использовал стиль цвета морской волны, но я также хотел изменить синюю заливку на другой цвет. После некоторых исследований и возни, а комментарий Мартина оказался полезным, я смог изменить цвет кнопки с помощью книги стилей.
- Щелкните правой кнопкой мыши кнопку «Изменить пользовательский стиль».
- Найдите стиль кнопки и разверните. В моем сценарии стиль выглядит так:
Для первого выбранного прямоугольника под моим фоновым прямоугольником в тот момент, когда я изменяю вид на что-то еще, кроме None, вы можете делать с ним все, что хотите. Залейте его сплошной заливкой Solid или залейте градиентом, изменив вид на Gradient.