Изменить цвет текста TextBlock в зависимости от фона - PullRequest
4 голосов
/ 26 сентября 2011

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

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

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

Ответы [ 3 ]

3 голосов
/ 26 сентября 2011

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

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

0 голосов
/ 26 сентября 2011

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

0 голосов
/ 26 сентября 2011

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

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

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

Это даст эффект текста на зеленой полосе, который будет белым.

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