Изменить цвет переднего плана TextBlock в зависимости от фона

Я ищу простой способ изменить цвет переднего плана TextBlock на основе цвета того, что находится за ним, чтобы он был более читабельным. Поскольку изображение более явное, чем слова, вот что я хочу:

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

Любая идея будет приветствоваться!


person Thomas Levesque    schedule 26.09.2011    source источник
comment
Я пытаюсь добиться чего-то подобного в CSS. Любые идеи?   -  person blue01    schedule 15.08.2012
comment
@Harpreet, извини, без понятия... я не занимаюсь веб-разработкой   -  person Thomas Levesque    schedule 15.08.2012


Ответы (3)


Предполагая, что это индикатор выполнения, вот отличное решение:

Индикатор выполнения WPF с динамическим обновлением текста и цвета текста

person loxxy    schedule 26.09.2011
comment
Спасибо, это именно то, что я пытаюсь сделать! - person Thomas Levesque; 26.09.2011

Быстрый и грязный метод:

Добавьте как белый, так и серый текстовые блоки, убедившись, что белый текстовый блок находится «поверх» серого текстового блока. Свяжите текст белого текстового блока с текстом серого текстового блока, чтобы они остались прежними.

Добавьте маску непрозрачности к белому текстовому блоку, положение и/или размер которого (или что-то еще требуется!) привязаны к положению и/или размеру зеленого прямоугольника (не уверен, что это шаблонный ProgressBar или пользовательский элемент управления, но в любом случае это можно было сделать).

Это даст эффект белого текста над зеленой полосой.

person Ross    schedule 26.09.2011
comment
Спасибо, это выглядит многообещающе! я попробую - person Thomas Levesque; 26.09.2011

Вы можете написать Valueconverter (реализовать IValueConverter) и передать BackgroundColor в качестве параметра преобразователя. на основе параметра вы конвертируете передний план текстового блока в желаемое значение.

person Sebastian    schedule 26.09.2011
comment
Спасибо, но это не относится к моей ситуации... Я имел в виду не фон самого TextBlock, а скорее цвет элемента позади TextBlock. - person Thomas Levesque; 26.09.2011