2010-04-10 70 views
4

我有一個包含在canvas中的折線圖。我想設置多段線的筆劃從底部的顏色開始,結束到另一個頂部的顏色。我試着用此XAML:
帶折線和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> 

以這種方式工作,但是漸變的高度等於折線的高度。我的意思是,如果我有一條從畫布底部到頂部的多段線,則漸變將應用於畫布的整個高度。如果我有一個水平多段線,漸變應用於其厚度。
我希望漸變高度等於畫布高度,與多段線高度無關。
我該如何做到這一點?

回答

3

漸變的開始和停止由LinearGradientBrushStartPointEndPoint屬性給出。您的示例顯示了PolyLine(0.5,1和0.5,0)內的值。您可以使值小於0或大於1,以便在形狀之前開始漸變或在漸變之後結束漸變。

但是,使用相對值可能很難爲你想要的。使用相對值是因爲LinearGradientBrushMappingMode屬性未明確設置。默認值是RelativeToBoundingBox,但可以設置爲Absolute

這樣,您可以將StartPoint設置爲(0,0)和EndPoint設置爲畫布的寬度和高度,以獲得您要查找的結果。