首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinearGradientBrush转换器

LinearGradientBrush转换器
EN

Stack Overflow用户
提问于 2013-08-20 13:34:58
回答 2查看 1.4K关注 0票数 1

如何将LinearGradientBrush值转换为字符串值或颜色值。我有一个返回LinearGradientBrush值的方法

代码语言:javascript
复制
    private LinearGradientBrush SetBackground(string color1, string color2)
    {
        LinearGradientBrush brush = new LinearGradientBrush();
        brush.StartPoint = new Point(0, 0);
        brush.EndPoint = new Point(0, 1);
        GradientStop gra1 = new GradientStop();
        gra1.Color = (Color)ColorConverter.ConvertFromString(color1);
        gra1.Offset = 1;
        GradientStop gra2 = new GradientStop();
        gra2.Color = (Color)ColorConverter.ConvertFromString(color2);
        gra2.Offset = 0;
        brush.GradientStops.Add(gra1);
        brush.GradientStops.Add(gra2);
        return brush;
    }

我需要把这个返回值转换成字符串类型或者十六进制值,比如"FFFF00“表示,可以吗?如果可以,怎么做?提前感谢

EN

回答 2

Stack Overflow用户

发布于 2013-08-20 13:58:19

一种相对简单的方法是将各种属性输出到一个字符串中。在这里使用brain编译器,但这不是很简单吗:

代码语言:javascript
复制
private string LinearGradientBrushToString(LinearGradientBrush brush)
{
    StringBuilder output = new StringBuilder();

    output.Append(brush.StartPoint.X + "," + brush.StartPoint.Y);
    output.Append("|" + brush.EndPoint.X + "," + brush.EndPoint.Y);

    foreach(GradientStop g in brush.GradientStops) 
    {
        output.Append("|" + g.Offset + "," + ColorConverter.ConvertToString(g.Color));
    }

    return output.ToString();
}

这应该输出一个字符串,该字符串的键属性已转换为字符串,并以竖线和逗号分隔的格式放置。使用String.Split()将其分解并再次创建画笔就足够简单了。

票数 2
EN

Stack Overflow用户

发布于 2016-03-10 01:37:39

听着..。颜色是单点纯色。线性渐变是颜色点的集合。这意味着,如果你想比较一个点和一个规则,你应该做一些转换或类似的事情。

代码语言:javascript
复制
public static class LinearGratientBrushExtensions
{
    public static Color AverageColor(this LinearGradientBrush brush)
    {
        return brush.GradientStops[(int)Math.Round((double)((brush.GradientStops.Count() - 1) / 2), 0)].Color;
    }
}

提供的扩展方法使用简单的“中间点”方法,拾取颜色规则的中点并返回它。你必须选择你自己的算法来找到这个“中间点”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18327639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档