2016-12-02 9 views
1

Я пытаюсь получить стиль Combobox выглядеть следующим образом:FireMonkey - стилизованный ComboBox

enter image description here

Я нажал правую ComboBox и модифицировал Custom Style так:

enter image description here

И я получаю это:

enter image description here

Я попытался добавить больше прямоугольников к другим объектам из Style Editor, но мне не удавалось сделать стильный ComboBox, чтобы выглядеть так, как я хочу.

Любые предложения будут высоко оценены. Заранее спасибо.

+0

Вы пытались расширить «Макет» ?. Это можно определить внешний вид кнопки со стрелкой. – Hans

+0

@ Ханс. Да. Как я уже говорил, я пробовал все возможные комбинации, добавляя 'tRectangle' и надеясь, что это сработает. Кстати, добавление объекта 'tRectangle' в' ButtonStyle', обфускации его, таким образом, больше не реагирует на событие click. Кажется (как я нашел поиск в «Web»), то есть основной 'tListBox', который я должен создать, но я не знаю, как его достичь. – ppro

ответ

0

Серая линия вокруг элемента управления определяется элементом background, а кнопка со стрелкой определяется ButtonStyleObject внутри Layout. Оба являются изображениями, которые просматриваются в изображении, которое отличается для каждой загруженной платформы или стиля (изображение по умолчанию в Windows называется Windows 10 Desktopstyle.png).

Когда я определяю свои собственные стили, я лично предпочитаю использовать векторные определения, т. Е. Я бы заменил два элемента управления изображением на элементы управления tRectangle и определил символ стрелки, используя TShape (помещенный внутри прямоугольника, заменяющего ButtonStyleObject).

+0

Благодарим вас за ответ. Я принимаю это за правильность. Тем не менее, есть небольшая проблема: если вы посмотрите на изображение «ComboBox», вы заметите, что все еще есть область сбрасывания с тем же цветом, что и в области 'button'. Как установить эту область на тот же цвет синего цвета, что и на внутреннем прямоугольнике? – ppro

+0

Все, что нарисовано Combobox, определяется стилем, поэтому вам просто нужно найти элемент в стиле, который рисует этот цвет. Раньше я не пытался стирать со списком, поэтому я не знаю, какой элемент вам нужно изменить, но это должно быть легко узнать. Обратите внимание, однако, что элемент в стиле может относиться к другому стилю, т. Е. Отображает его цвета из другого стиля. Это тот случай, когда установлен режим «StyleLookup». – Hans