2014-06-04 68 views
2

我正在使用C#和WPF的程序工作,我很想知道如何获取一些文本的文本颜色,我必须根据我设置的背景图像动态更改是。C#WPF - 基于背景图像动态改变文本颜色

背景图像随机加载(我将无法控制它们是什么),我需要根据它是什么来保持字体的可读性。

正如你可以在这里看到:http://i.gyazo.com/820c45dde9d767dcd7ab2a92bd1de898.png

在这样的背景图像集,有没有办法读什么文本的意见。同时,在较浅的背景下它看起来很好。

基本上我觉得需要做的是

  1. 获取该图像
  2. 中最常用的颜色查找出来,如果这是一个“亮或暗的颜色”
  3. 改变文本的相应 怎么可能我这样做?无论是以编程方式还是WPF XAML(我仍然对使用WPF都很陌生,所以请在这里支持)。

在先进的感谢,

迈克

+3

您可以使用转换器'处理某些数据后设置属性'。看看http://wpftutorial.net/ValueConverters.html。如果您可以绑定到图像并使用转换器,则可以设置Text元素的前景。 – krishnaaditya

+3

你的文本仍然不会被读取。如果最常用的颜色是黑色,并且您决定使用白色,那么文本仍然有可能位于背景的某个白色区域。带有白色轮廓的黑色文本可以在任何东西上阅读。 –

回答

1

我会同意,试图动态选择文本颜色不理想。即使您选择了使某些文字可见的颜色,也无法保证它不会通过隐藏它的部分图像。

就我个人而言,我会使用白色背景的标签,但减少背景不透明度以显示背后的图像的一部分。这样,您的文字将始终位于轻松的区域,黑暗的文字始终可以正常工作。

Andy。