我有一个TextBox颜色作为其背景颜色和文本中的背景颜色代码.我已将文字颜色设置为Black.
问题是如果用户将颜色设置为Black那么颜色代码将是不可读的.如何以编程方式设置文本颜色,以便在用户选择任何颜色时它变得可读?
您可以为文本使用负色:
Color InvertColor(Color sourceColor) {
return Color.FromArgb(255 - sourceColor.R,
255 - sourceColor.G,
255 - sourceColor.B);
}
Run Code Online (Sandbox Code Playgroud)
任何颜色都保证在其负面颜色上或多或少可读,所以你去.这是一种快速而肮脏的方式来反转颜色,您可能还想检查此问题的答案:如何反转颜色?
另一种选择是在黑色文本中添加白色光环.这就是人们在GIS应用程序中所做的工作,以确保地图标签在任何表面上都是可读的.光环效应的想法是在黑色文本周围有一个薄的白色边框.这样,无论文本是在白色背景上(边框变得不可见)还是在黑色背景上(边框勾勒出文本),文本都是可读的.
有关该主题的多个教程,如本文或此SO问题(使用VB.NET示例).
当你Color挑选出来时,只需将它分配给ForeColor文本框的属性,如下所示:
txtColor.ForeColor = mycolor;
Run Code Online (Sandbox Code Playgroud)