MS图表标签只有在系列

时间:2017-02-15 11:07:45

标签: c# .net mschart series

上下文 我正在使用MS Chart,如果值是标注(重新定位在系列之外),则需要使我的系列标签为黑色。

实际上,系列标签显示在系列内部,我正在根据系列颜色暗度/亮度因子更新标签颜色。如果系列颜色较暗,则标签颜色将为白色,如果系列颜色较浅,则使用以下代码将标签颜色设置为白色

    double brightnessWhite = 255;
    double brightnessBackColor = (backColor.R * 299 + backColor.G * 587 + backColor.B * 114) / 1000;
    double brightnessForeColor = (foreColor.R * 299 + foreColor.G * 587 + foreColor.B * 114) / 1000;

    double factor = brightnessForeColor - brightnessBackColor;
    double whiteFactor = brightnessWhite - brightnessBackColor;

    if (factor <= 110 && factor >= -140) // text not legible
    {
        color = (whiteFactor >= 110 && whiteFactor <= -140) ? Color.Black : Color.White;
    }

    return color;

问题: 如果系列大小要小得多,则此处开始问题,然后由于启用了SmartLabelStyle标注属性,标签会重新定位到外部。如果我的系列颜色较深且非常小,那么在图表区域的系列之外绘制的白色标签也是白色的,因此标签将不再可见。 (图片已在下面附上)

我不能将整个标签的颜色变为灰色或其他颜色,因为如果不在系列之外它会影响所有标签。仅当标签重新定位在系列之外时,标签如何以黑色显示。

left is a picture with visible label and right is with white label on white background

0 个答案:

没有答案