共用方式為


HOW TO:轉換筆刷

更新:2007 年 11 月

本範例說明如何使用 Brush 物件的兩個轉換屬性:RelativeTransformTransform,來轉換物件。

下列範例會使用 RotateTransform 旋轉 ImageBrush 的內容 45 度。

下圖顯示的 ImageBrush 分別是沒有 RotateTransform、將 RotateTransform 套用到 RelativeTransform 屬性,以及將 RotateTransform 套用到 Transform 屬性。

筆刷的 RelativeTransform 和 Transform 設定

範例

第一個範例將 RotateTransform 套用到 ImageBrushRelativeTransform 屬性。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>

第二個範例也將 RotateTransform 套用到 ImageBrush,不過,這個範例使用 Transform 屬性,而非 RelativeTransform 屬性。

為了以中心為準旋轉筆刷,此範例將 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 屬性運作方式的描述,請參閱筆刷轉換概觀

如需完整範例,請參閱筆刷範例。如需筆刷的詳細資訊,請參閱使用純色和漸層繪製的概觀

請參閱

概念

筆刷轉換概觀

使用純色和漸層繪製的概觀

轉換概觀