LinearGradientBrush.ResetTransform 方法

定义

Transform 属性重置为标识。Resets the Transform property to identity.

public:
 void ResetTransform();
public void ResetTransform ();
member this.ResetTransform : unit -> unit
Public Sub ResetTransform ()

示例

下面的代码示例旨在与 Windows 窗体一起使用,并且它需要 PaintEventArgs e 一个 OnPaint 事件对象。The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an OnPaint event object. 此代码执行以下操作:The code performs the following actions:

  • 创建一个新的 LinearGradientBrushCreates a new LinearGradientBrush.

  • 使用此画笔在屏幕上绘制一个椭圆。Draws an ellipse to the screen using this brush.

  • 调用 MultiplyTransform 方法来转换 LinearGradientBrushCalls the MultiplyTransform method to transform the LinearGradientBrush.

  • 使用变换后的画笔,在第一个椭圆下直接向屏幕绘制一个椭圆。Draws an ellipse to the screen directly below the first ellipse, using the transformed brush.

  • 重置转换。Resets the transform.

  • 将第三个椭圆绘制到屏幕下方的前两个。Draws a third ellipse to the screen below the first two.

请注意,最小椭圆的绘制大小与第一个椭圆相同,因此,由于对方法的调用 ResetTransform ,渐变已缩小为匹配。Notice that the lowest ellipse is drawn the same size as the first, and that, due to the call to the ResetTransform method, the gradient has been reduced to match.

private:
   void ResetTransformExample( PaintEventArgs^ e )
   {
      // Create a LinearGradientBrush.
      Rectangle myRect = Rectangle(20,20,200,100);
      LinearGradientBrush^ myLGBrush = gcnew LinearGradientBrush( myRect,Color::Blue,Color::Red,0.0f,true );

      // Draw an ellipse to the screen using the LinearGradientBrush.
      e->Graphics->FillEllipse( myLGBrush, myRect );

      // Transform the LinearGradientBrush.
      array<Point>^ transformArray = {Point(20,150),Point(400,150),Point(20,200)};
      Matrix^ myMatrix = gcnew Matrix( myRect,transformArray );
      myLGBrush->MultiplyTransform( myMatrix, MatrixOrder::Prepend );

      // Draw a second ellipse to the screen
      // using the transformed brush.
      e->Graphics->FillEllipse( myLGBrush, 20, 150, 380, 50 );

      // Reset the brush transform.
      myLGBrush->ResetTransform();

      // Draw a third ellipse to the screen using the reset brush.
      e->Graphics->FillEllipse( myLGBrush, 20, 250, 200, 100 );
   }
private void ResetTransformExample(PaintEventArgs e)
{
             
    // Create a LinearGradientBrush.
    Rectangle myRect = new Rectangle(20, 20, 200, 100);
    LinearGradientBrush myLGBrush = new LinearGradientBrush(
        myRect, Color.Blue, Color.Red,  0.0f, true);
             
    // Draw an ellipse to the screen using the LinearGradientBrush.
    e.Graphics.FillEllipse(myLGBrush, myRect);
             
    // Transform the LinearGradientBrush.
    Point[] transformArray = { new Point(20, 150),
         new Point(400,150), new Point(20, 200) };
       
    Matrix myMatrix = new Matrix(myRect, transformArray);
    myLGBrush.MultiplyTransform( myMatrix, MatrixOrder.Prepend);
             
    // Draw a second ellipse to the screen
    // using the transformed brush.
    e.Graphics.FillEllipse(myLGBrush, 20, 150, 380, 50);
             
    // Reset the brush transform.
    myLGBrush.ResetTransform();
             
    // Draw a third ellipse to the screen using the reset brush.
    e.Graphics.FillEllipse(myLGBrush, 20, 250, 200, 100);
}
Public Sub ResetTransformExample(ByVal e As PaintEventArgs)

    ' Create a LinearGradientBrush.
    Dim myRect As New Rectangle(20, 20, 200, 100)
    Dim myLGBrush As New LinearGradientBrush(myRect, Color.Blue, _
    Color.Red, 0.0F, True)

    ' Draw an ellipse to the screen using the LinearGradientBrush.
    e.Graphics.FillEllipse(myLGBrush, myRect)

    ' Transform the LinearGradientBrush.
    Dim transformArray As Point() = {New Point(20, 150), _
    New Point(400, 150), New Point(20, 200)}
    Dim myMatrix As New Matrix(myRect, transformArray)
    myLGBrush.MultiplyTransform(myMatrix, MatrixOrder.Prepend)

    ' Draw a second ellipse to the screen using the transformed brush.
    e.Graphics.FillEllipse(myLGBrush, 20, 150, 380, 50)

    ' Reset the brush transform.
    myLGBrush.ResetTransform()

    ' Draw a third ellipse to the screen using the reset brush.
    e.Graphics.FillEllipse(myLGBrush, 20, 250, 200, 100)
End Sub

适用于