Правильно нарисуйте текст на элементе управления, в отличие от его фона - PullRequest
0 голосов
/ 05 октября 2011

http://fc04.deviantart.net/fs71/f/2011/277/7/6/problem_by_tekuconcept-d4btjlx.png

Как показано на рисунке выше, я хочу иметь возможность нарисовать контраст в строке.Я прочитал эту ссылку: о том же (технически) (http://stackoverflow.com/questions/1192543/drawing-a-contrasted-string-on-an-image/1192560#1192560)), и там я нашел эту ссылку: о том, как создать перо / кисть XOR . Я пытался использовать GDI при рисовании на панелино когда дело дошло до инициализации, я получил "... обнаружен несбалансированный стек ..." . Есть ли способ, которым я могу создать этот эффект (не приближаясь к применению свечения / контуров).

Я думал, что могу нарисовать один цвет для растрового изображения так же, как и для другого, одним и тем же способом. Объединяя их, я в настоящее время не знаю, как это сделать, и я не уверен, как это повлияет на производительность компьютера..

(Для любого любопытного относительно того, что я делаю ... Я создаю коллекцию пользовательских элементов управления, основанных на текущих профессиональных стилях GUI): fc09. Deviantart. Net / fs71 / f/2011/277/0/9/controls_by_tekuconcept-d4btji9.png

Ответы [ 2 ]

3 голосов
/ 05 октября 2011

Нарисуйте текст дважды, используя разные области отсечения и разные цвета.

0 голосов
/ 05 октября 2011

Моя текущая реализация такого индикатора выполнения использует две битовые карты, которые представляют две половины индикатора выполнения.

1) Нарисуйте битовую карту шириной, равной вашему текущему значению прогресса.2) Заполните его цветом индикатора выполнения.3) Напишите текст в соответствующем месте, как если бы он был в середине элемента управления.Это вероятно отрежет право.4) Нарисуйте растровое изображение шириной с остальной частью индикатора выполнения.5) Залейте его цветом фона.6) Напишите текст в том же месте, чтобы он располагался слева от изображения.7) Слияние двух.

Это немного взломать, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...