2010-04-10 4 views
4

캔버스에 폴리 라인이 포함 된 그래프가 있습니다. 폴리 라인의 스트로크를 아래쪽의 색상에서 시작하여 맨 위에있는 다른 색상으로 설정하고 싶습니다. 작동이 방법으로
다중 선 및 LinearGradientBrush가있는 차트의 문제점

<Polyline StrokeThickness="2"> 
    <Polyline.Stroke> 
    <LinearGradientBrush StartPoint="0.5,1" EndPoint="0.5,0"> 
     <GradientStop Color="Blue" Offset="0" /> 
     <GradientStop Color="Cyan" Offset="1" /> 
    </LinearGradientBrush> 
    </Polyline.Stroke> 
</Polyline> 

을하지만, 그라데이션의 높이 폴리 라인의 높이와 같다 :이 XAML로했습니다. 캔버스의 맨 아래에서 위쪽으로가는 폴리 라인이있는 경우 캔버스의 전체 높이에 그라디언트가 적용됩니다. 그 대신에 수평 폴리선이 있다면, 그 두께에 그라디언트가 적용됩니다.
폴리 라인 높이와 독립적으로 캔버스 높이와 동일한 그래디언트 높이를 갖고 싶습니다.
어떻게해야합니까?

답변

3

그래디언트의 시작과 중단은 LinearGradientBrushStartPointEndPoint 속성으로 제공됩니다. 귀하의 예는 PolyLine (0.5,1 및 0.5,0) 안에있는 값을 보여줍니다. 모양 이전에 그라디언트를 시작하거나 그 뒤에 끝나기 위해 0보다 작거나 1보다 큰 값을 가질 수 있습니다.

하지만 상대적인 값을 사용하는 것은 원하는 것에 어려울 수 있습니다. LinearGradientBrushMappingMode 속성이 명시 적으로 설정되지 않았기 때문에 상대 값이 사용됩니다. 기본값은 RelativeToBoundingBox이지만, Absolute으로 설정할 수 있습니다.

이렇게하면 StartPoint을 (0,0)로 설정하고 캔버스의 너비와 높이를 EndPoint으로 설정하면 찾고있는 결과를 얻을 수 있습니다.