I have the following GradientStopCollection:
GradientStopCollection grsc = new GradientStopCollection(3);
grsc.Add(new GradientStop(Colors.Red, 0));
grsc.Add(new GradientStop(Colors.Yellow, .5));
grsc.Add(new GradientStop(Colors.Green, 1));
Can I get the color at a specific “location”?
For example:
- Location 0: Red
- Location .5: Yellow
- Location .75:
Yellow<~>Green
Is there an API in WPF / some third party library that could do that?
To get a color at a specific point is necessary to understand the gradient in question, and this is not the role of class GradientStopCollection. The concept of this class is not to understand a gradient, but should be a simple collection of support to a gradient.
Is important that you understand the concept of each class.
To get a color, you need to instantiate a class that represents a gradient using the gradient to paint and finally get their color from the painting.
but I’ll give you a quicker solution. You can use a gradient algorithm to generate a single point. This is an implementation of how to do this using a linear gradient algorithm:
Add this class in your current context (namespace context)
To get your color in any place you insert something like this: