【问题标题】:C# WPF - Dynamically Change Text Color based on Background ImageC# WPF - 根据背景图像动态更改文本颜色
【发布时间】:2014-07-25 17:56:38
【问题描述】:

我正在开发一个使用 C# 和 WPF 的程序,我很想知道一些文本的文本颜色,我必须根据我设置的背景图像动态更改。

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

如您所见:http://i.gyazo.com/820c45dde9d767dcd7ab2a92bd1de898.png

使用此背景图片集,无法阅读文字内容。同时,在较浅的背景下看起来也不错。

基本上我认为需要发生的是

  1. 获取该图像中最常用的颜色
  2. 找出它是“浅色还是深色”
  3. 相应地更改文本 我怎么能这样做?无论是以编程方式还是在 WPF XAML 中(我对使用 WPF 还是很陌生,所以请耐心等待)。

非常感谢,

迈克

【问题讨论】:

  • 您可以使用转换器“在处理一些数据后设置属性”。看看wpftutorial.net/ValueConverters.html。如果可以绑定图片并使用转换器,则可以设置Text元素的前景。
  • 您的文本仍然很可能无法阅读。如果最常用的颜色是黑色并且您决定使用白色,则文本仍有可能位于背景的某些白色区域上。不过,带有白色轮廓的黑色文本可以在任何内容上阅读。

标签: c# wpf fonts colors


【解决方案1】:

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

我个人会使用带有白色背景的标签,但会降低背景不透明度以显示背后图像的某些部分。这样一来,您的文本将始终位于亮区,而深色文本将始终有效。

安迪。

【讨论】:

    猜你喜欢
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 2013-09-03
    • 1970-01-01
    • 2019-06-23
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多