我想提請一些圈子裏像這樣的另一個圈子:WPF:RadialGradientBrush沒有漸變?
alt text http://img38.imageshack.us/img38/6379/circles.png
有沒有辦法告訴放射漸變不使用漸變只是固定顏色,這樣我就可以做到這一點?感謝您的任何提示!
(我猜這可能使用DrawingBrush很容易做到,我只是想知道這是否也使用放射漸變畫筆來完成)
我想提請一些圈子裏像這樣的另一個圈子:WPF:RadialGradientBrush沒有漸變?
alt text http://img38.imageshack.us/img38/6379/circles.png
有沒有辦法告訴放射漸變不使用漸變只是固定顏色,這樣我就可以做到這一點?感謝您的任何提示!
(我猜這可能使用DrawingBrush很容易做到,我只是想知道這是否也使用放射漸變畫筆來完成)
如果您嘗試製作絕對大小的「靶心」,請考慮在網格中重疊橢圓而不是嘗試使用筆刷。
<Grid>
<Grid.Resources>
<Style TargetType="{x:Type Ellipse}">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
</Grid.Resources>
<Ellipse Width="100"
Height="100"
Fill="Salmon" />
<Ellipse Width="50"
Height="50"
Fill="Red" />
<Ellipse Width="25"
Height="25"
Fill="Black" />
</Grid>
因爲都是在同一個網格(行和列都默認爲0,但你可以將它們設置),並有自己的水平和垂直對齊設置爲舒展,他們會簡單地重複。當然,一定要先放最大的一個。
如果你真的想這樣做,你可以重複顏色你想要的偏移量就是你想要的。
例如:
<RadialGradientBrush>
<GradientStop Offset="0" Color="Black" />
<GradientStop Offset="0.25" Color="Black" />
<GradientStop Offset="0.25" Color="Red" />
<GradientStop Offset="0.75" Color="Red" />
<GradientStop Offset="0.75" Color="Salmon" />
<GradientStop Offset="1" Color="Salmon" />
</RadialGradientBrush>
這樣,它將填補黑黑爲0〜0.25,紅對紅從0.25至0.75,和鮭魚到鮭從0.75至1.0。
由於偏移量匹配,所以漸變沒有「空間」混合。
感謝您的提示,效果很棒!梯度的大小/長度/寬度是相對的,有沒有一種方法可以用設備獨立單元來指定它,例如,黑圈應該是30個單位? – 2010-05-03 20:57:11
Ok theres Brush.MappingMode,你可以將它設置爲絕對,但我只是不明白它如何使用它...可能有人請張貼一些示例代碼?謝謝! – 2010-05-03 21:05:36
爲了格式化的原因,請參閱下一個答案(並隨意選擇一個作爲答案)。 :) – 2010-05-03 21:15:04
再次感謝您的回覆!仍然想知道絕對的Brush.MappingMode是如何工作的。猜猜我會爲此發一個新帖子。哦,我會選擇一個解決方案作爲答案,謝謝! – 2010-05-03 21:23:02
MappingMode適用於StartPoint和EndPoint。 請參閱http://msdn.microsoft.com/en-us/library/system.windows.media.gradientbrush.mappingmode.aspx – 2010-05-04 15:29:07
啊,謝謝你的提示! – 2010-05-15 20:32:57