2009-11-04 112 views
1
<!-- Base color --> 
    <Ellipse Width="24" Height="24" Margin="10"> 
     <Ellipse.Fill> 
      <RadialGradientBrush GradientOrigin=".5,.8" RadiusX="0.6"> 
       <GradientStop Color="#002255" Offset="1" /> 
       <GradientStop Color="#00eeff" Offset="0" /> 
      </RadialGradientBrush> 
     </Ellipse.Fill> 
    </Ellipse> 
    <!-- Highligh color--> 
    <Ellipse Width="18" Height="15" Canvas.Top="1" Canvas.Left="3" Margin="10"> 
     <Ellipse.Fill> 
      <LinearGradientBrush StartPoint="0,0" EndPoint="0,1"> 
       <GradientStop Color="#ffffff" Offset="0" /> 
       <GradientStop Color="Transparent" Offset="1" /> 
      </LinearGradientBrush> 
     </Ellipse.Fill> 
    </Ellipse> 

回答

1

这是你的第一个椭圆的代码:

RadialGradientBrush radialGradientBrush = 
    new RadialGradientBrush 
     { 
      GradientOrigin = new Point(.5, .8), 
      RadiusX = 0.6 
     }; 

radialGradientBrush.GradientStops.Add(
    new GradientStop 
     { 
      Color = ((Color) ColorConverter.ConvertFromString("#002255")), 
      Offset = 1 
     }); 
radialGradientBrush.GradientStops.Add(
    new GradientStop 
     { 
      Color = ((Color) ColorConverter.ConvertFromString("#00eeff")), 
      Offset = 0 
     }); 

Ellipse firstEllipse = 
    new Ellipse {Width = 24, Height = 24, Margin = new Thickness(10), Fill = radialGradientBrush}; 

你可以很容易中号让第二个人在同一条线上。

编辑:如果你是新的第二椭圆所附画布属性可能会非常棘手,所以这里是你如何设置它们:

Canvas.SetTop(secondEllipse, 1); 
Canvas.SetLeft(secondEllipse, 3); 
+0

非常感谢你的回答...这对我很有帮助... 干杯... – 2009-11-04 04:57:32

5

我给你举个例子。

此:

<Rectangle Width="200" Height="100"> 
    <Rectangle.Fill> 
    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> 
     <GradientStop Color="Yellow" Offset="0.0" /> 
     <GradientStop Color="Red" Offset="0.25" /> 
     <GradientStop Color="Blue" Offset="0.75" /> 
     <GradientStop Color="LimeGreen" Offset="1.0" /> 
    </LinearGradientBrush> 
    </Rectangle.Fill> 
</Rectangle> 

是相同的:

Rectangle rectangle = new Rectangle(); 
rectangle.Width = 200; 
rectangle.Height = 100; 

// Create a diagonal linear gradient with four stops. 
LinearGradientBrush brush = new LinearGradientBrush(); 
brush.StartPoint = new Point(0,0); 
brush.EndPoint = new Point(1,1); 
brush.GradientStops.Add(new GradientStop(Colors.Yellow, 0.0)); 
brush.GradientStops.Add(new GradientStop(Colors.Red, 0.25));     
brush.GradientStops.Add(new GradientStop(Colors.Blue, 0.75));   
brush.GradientStops.Add(new GradientStop(Colors.LimeGreen, 1.0)); 

// Use the brush to paint the rectangle. 
rectangle.Fill = brush; 

http://msdn.microsoft.com/en-us/library/system.windows.media.lineargradientbrush.aspx

+0

非常感谢你的回答......这是非常有帮助给我... 干杯.. – 2009-11-04 04:56:59