2010-05-03 29 views

回答

1

如果您嘗試製作絕對大小的「靶心」,請考慮在網格中重疊橢圓而不是嘗試使用筆刷。

<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,但你可以將它們設置),並有自己的水平和垂直對齊設置爲舒展,他們會簡單地重複。當然,一定要先放最大的一個。

+0

再次感謝您的回覆!仍然想知道絕對的Brush.MappingMode是如何工作的。猜猜我會爲此發一個新帖子。哦,我會選擇一個解決方案作爲答案,謝謝! – 2010-05-03 21:23:02

+1

MappingMode適用於StartPoint和EndPoint。 請參閱http://msdn.microsoft.com/en-us/library/system.windows.media.gradientbrush.mappingmode.aspx – 2010-05-04 15:29:07

+0

啊,謝謝你的提示! – 2010-05-15 20:32:57

5

如果你真的想這樣做,你可以重複顏色你想要的偏移量就是你想要的。

例如:

  <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。

由於偏移量匹配,所以漸變沒有「空間」混合。

+0

感謝您的提示,效果很棒!梯度的大小/長度/寬度是相對的,有沒有一種方法可以用設備獨立單元來指定它,例如,黑圈應該是30個單位? – 2010-05-03 20:57:11

+0

Ok theres Brush.MappingMode,你可以將它設置爲絕對,但我只是不明白它如何使用它...可能有人請張貼一些示例代碼?謝謝! – 2010-05-03 21:05:36

+0

爲了格式化的原因,請參閱下一個答案(並隨意選擇一個作爲答案)。 :) – 2010-05-03 21:15:04