4

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

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

任何想法都会受到欢迎!

4

3 回答 3

3

假设上面是一个进度条,这是一个很好的解决方案:

具有动态文本和文本颜色更新的 WPF 进度条

于 2011-09-26T14:59:23.750 回答
0

快速而肮脏的方法:

添加白色和灰色文本块,确保白色文本块位于灰色文本块的“顶部”。将白色文本块的文本绑定到灰色文本块的文本,使它们保持不变。

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

然后,这将使绿色条上的文本效果为白色。

于 2011-09-26T13:40:26.063 回答
0

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

于 2011-09-26T14:20:39.667 回答