2011-09-26 129 views
4

我正在寻找一种简单的方法,以基于其背后颜色的颜色更改TextBlock的前景色,以使其更具可读性。由于图像是比文字更加明确,这里就是我想要的:基于背景更改TextBlock前景色

我认为它可以使用自定义着色器效果来完成,但我不知道如何来创建它...无论如何,或许有一个更简单的解决方案。

任何想法都会受到欢迎!

+0

我试图实现CSS类似的东西。有任何想法吗? – Harpreet

+0

@Harpreet,对不起,不知道...我不做网络开发 –

回答

0

快速和脏方法:

添加两个白色和灰色的TextBlocks,确保了白色正文块是“顶部”灰色文本块的。将白色文本块的文本绑定到灰色文本块的文本,以便它们保持不变。

向白色文本块添加不透明蒙板,其位置和/或大小(或任何必需的!)绑定到绿色矩形的位置和/或大小(不确定这是模板化的ProgressBar还是自定义控件,但无论哪种方式都可以完成)。

然后这会使绿色栏上的文字效果变白。

+0

谢谢,这看起来很有前途!我会试一试 –

0

您可以编写一个Valueconverter(实现IValueConverter)并传递BackgroundColor作为转换器参数。根据参数将Textblock的forground转换为所需的值。

+0

谢谢,但这不适用于我的情况......我并不是指TextBlock本身的背景,而是指TextBlock背后元素的颜色。 –