Share via


방법: 브러시 변환

업데이트: 2007년 11월

이 예제에서는 RelativeTransformTransform 변환 속성을 사용하여 Brush 개체를 변환하는 방법을 보여 줍니다.

다음 예제에서는 RotateTransform을 사용하여 ImageBrush의 콘텐츠를 45도 회전합니다.

다음 그림은 각각 RotateTransform이 없는 경우, RelativeTransform 속성에 RotateTransform이 적용된 경우, Transform 속성에 RotateTransform에 적용된 경우에 해당하는 ImageBrush를 보여 줍니다.

Brush RelativeTransform 및 Transform 설정

예제

첫 번째 예제에서는 RotateTransformImageBrushRelativeTransform 속성에 적용합니다. RotateTransform 개체의 CenterXCenterY 속성은 모두 이 콘텐츠 중심 점의 상대적 좌표인 0.5로 설정됩니다. 그 결과 ImageBrush 콘텐츠가 중심 점을 기준으로 회전합니다.

//
// Create an ImageBrush with a relative transform and
// use it to paint a rectangle.
//
ImageBrush relativeTransformImageBrush = new ImageBrush();
relativeTransformImageBrush.ImageSource =
    new BitmapImage(new Uri(@"sampleImages\pinkcherries.jpg", UriKind.Relative));

// Create a 45 rotate transform about the brush's center
// and apply it to the brush's RelativeTransform property.
RotateTransform aRotateTransform = new RotateTransform();
aRotateTransform.CenterX = 0.5; 
aRotateTransform.CenterY = 0.5;
aRotateTransform.Angle = 45;
relativeTransformImageBrush.RelativeTransform = aRotateTransform;

// Use the brush to paint a rectangle.
Rectangle relativeTransformImageBrushRectangle = new Rectangle();
relativeTransformImageBrushRectangle.Width = 175;
relativeTransformImageBrushRectangle.Height = 90;
relativeTransformImageBrushRectangle.Stroke = Brushes.Black;
relativeTransformImageBrushRectangle.Fill = relativeTransformImageBrush;

<Rectangle Width="175" Height="90" Stroke="Black">
  <Rectangle.Fill>
    <ImageBrush ImageSource="sampleImages\pinkcherries.jpg">
      <ImageBrush.RelativeTransform>
        <RotateTransform CenterX="0.5" CenterY="0.5" Angle="45" />
      </ImageBrush.RelativeTransform>
    </ImageBrush>
  </Rectangle.Fill>
</Rectangle>

두 번째 예제에서도 RotateTransformImageBrush에 적용하지만 이 예제에서는 RelativeTransform 속성 대신 Transform 속성을 사용합니다.

브러시 중심을 기준으로 회전하기 위해 예제에서는 RotateTransform 개체의 CenterXCenterY 속성을 절대 좌표로 설정합니다. 브러시는 175 x 90픽셀의 사각형을 칠하기 때문에 사각형의 중심 점은 (87.5, 45)입니다.

//
// Create an ImageBrush with a transform and
// use it to paint a rectangle.
//
ImageBrush transformImageBrush = new ImageBrush();
transformImageBrush.ImageSource =
    new BitmapImage(new Uri(@"sampleImages\pinkcherries.jpg", UriKind.Relative));

// Create a 45 rotate transform about the brush's center
// and apply it to the brush's Transform property.
RotateTransform anotherRotateTransform = new RotateTransform();
anotherRotateTransform.CenterX = 87.5;
anotherRotateTransform.CenterY = 45;
anotherRotateTransform.Angle = 45;
transformImageBrush.Transform = anotherRotateTransform;

// Use the brush to paint a rectangle.
Rectangle transformImageBrushRectangle = new Rectangle();
transformImageBrushRectangle.Width = 175;
transformImageBrushRectangle.Height = 90;
transformImageBrushRectangle.Stroke = Brushes.Black;
transformImageBrushRectangle.Fill = transformImageBrush;

<Rectangle Width="175" Height="90" Stroke="Black">
  <Rectangle.Fill>
    <ImageBrush ImageSource="sampleImages\pinkcherries.jpg">
      <ImageBrush.Transform>
        <RotateTransform CenterX="87.5" CenterY="45" Angle="45" />
      </ImageBrush.Transform>
    </ImageBrush>
  </Rectangle.Fill>
</Rectangle>

RelativeTransformTransform 속성의 작동 방식에 대한 설명은 브러시 변환 개요를 참조하십시오.

전체 샘플을 보려면 Brush 샘플을 참조하십시오. 브러시에 대한 자세한 내용은 단색 및 그라데이션을 사용한 그리기 개요를 참조하십시오.

참고 항목

개념

브러시 변환 개요

단색 및 그라데이션을 사용한 그리기 개요

Transform 개요