Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 如何从XAML LinearGradientBrush的偏移读取颜色?_Wpf_Xaml_Lineargradientbrush - Fatal编程技术网

Wpf 如何从XAML LinearGradientBrush的偏移读取颜色?

Wpf 如何从XAML LinearGradientBrush的偏移读取颜色?,wpf,xaml,lineargradientbrush,Wpf,Xaml,Lineargradientbrush,给定一个LinearGradientBrush定义如下: <LinearGradientBrush x:Key="RedYellowGradient"> <GradientStop Color="Blue" Offset="0.01" /> <GradientStop Color="Purple" Offset="0.25"/> <GradientStop Color

给定一个
LinearGradientBrush
定义如下:

        <LinearGradientBrush x:Key="RedYellowGradient">
            <GradientStop Color="Blue" Offset="0.01" />
            <GradientStop Color="Purple" Offset="0.25"/>
            <GradientStop Color="Red" Offset="0.5"/>
            <GradientStop Color="Orange" Offset="0.75"/>
            <GradientStop Color="Yellow" Offset="1.0"/>
        </LinearGradientBrush>
功能体中需要加入什么?我不是在寻找完成的代码(尽管我不会拒绝!),只是一些关于使用什么数据结构和系统调用的想法

这门课(出自@JonnyPiazzi)似乎正好解决了我的问题:

公共静态类GradientStopCollectionExtensions
{
公共静态颜色GetRelativeColor(此GradientStopCollection gsc,双偏移)
{
GradientStop before=gsc.Where(w=>w.Offset==gsc.Min(m=>m.Offset)).First();
GradientStop after=gsc.Where(w=>w.Offset==gsc.Max(m=>m.Offset)).First();
foreach(gsc中的var gs)
{
如果(gs.Offset在.Offset之前)
{
前=gs;
}
如果(总偏移量>偏移量和总偏移量
只需访问Gradientstops,并在每对([0]->[1],[1]->[2]等)偏移之间进行插值,现在使用插值在每对颜色之间进行插值。可能会有帮助,可能duplicate@JohanLarsson你是对的;其中一个答案中的代码对于我来说是正确的。我宁愿在这里复制它也不愿标记这个副本,因为我在搜索中找不到那个问题,而且他的问题范围不同。也许让那个人也回答这个问题?我测试了他的代码,并对他的答案进行了投票;我还提交了对标签的编辑,以便于查找。Roslyn的翻译几乎完美地将他的C#翻译成了我需要的VB。如果他过来,我就把自答去掉。
Function GetColorFromBrushOffset(br as LinearGradientBrush, offset as Single) as SomeColorDataStructure