次の方法で共有


方法 : ブラシを変換する

更新 : 2007 年 11 月

この例では、2 つの変換プロパティ RelativeTransformTransform を使用して Brush オブジェクトを変換する方法を示します。

次の例では、RotateTransform を使用して、ImageBrush のコンテンツを 45°回転します。

次の図は、それぞれ、RotateTransform を適用していない状態、RotateTransformRelativeTransform プロパティに適用した状態、および RotateTransformTransform プロパティに適用した状態の ImageBrush を示しています。

ブラシ RelativeTransform と変換の設定

使用例

最初の例では、RotateTransformImageBrushRelativeTransform プロパティに適用しています。RotateTransform オブジェクトの CenterX プロパティおよび CenterY プロパティは、コンテンツの中心点の相対座標である 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>

2 番目の例でも、RotateTransformImageBrush に適用していますが、RelativeTransform プロパティの代わりに Transform プロパティを使用しています。

ブラシをその中心を軸に回転するために、RotateTransform オブジェクトの CenterX プロパティおよび CenterY プロパティを絶対座標に設定しています。このブラシは 175 × 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>

RelativeTransform プロパティと Transform プロパティの機能の詳細については、「ブラシの変換の概要」を参照してください。

サンプル全体については、「ブラシのサンプル」を参照してください。ブラシの詳細については、「純色およびグラデーションによる塗りつぶしの概要」を参照してください。

参照

概念

ブラシの変換の概要

純色およびグラデーションによる塗りつぶしの概要

変換の概要