Biorąc pod uwagę LinearGradientBrush
zdefiniowane następująco:Jak odczytać kolor z offsetu XAML 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>
Co jest wymagane do podjęcia tej definicji i określenia koloru reprezentowanego przez specyficzny offsetowego, takie jak 0,13 lub 0,82, bez uczynienia czegokolwiek widoczne?
byłoby to przybrać formę funkcji z prototypem coś takiego:
Function GetColorFromBrushOffset(br as LinearGradientBrush, offset as Single) as SomeColorDataStructure
Co musiałoby iść w ciele funkcji? Nie szukam skończonego kodu (choć nie odmówię!) Tylko kilka pomysłów na temat struktur danych i wywołań systemowych.
tylko dostęp do Gradientstops i interpolacji między poszczególnymi parami ([0] -> [1], [1] - > [2] itp.) Przesunięcie, teraz użyj interpolowanej wartości do interpolacji między kolorami poszczególnych par. – dowhilefor
[this] (http://stackoverflow.com/a/9651053/1069200) może być pomocny, możliwy duplikat –
@JohanLarsson Masz rację; kod w jednej z odpowiedzi wygląda poprawnie dla moich celów. Wolę odtworzyć to tutaj, niż zaznaczyć ten duplikat, ponieważ nie mogłem znaleźć tego pytania w moich wyszukiwaniach, a jego pytanie ma inny zakres. –