업데이트: 2007년 11월

이미지로 영역을 그립니다.

네임스페이스:  System.Windows.Media
어셈블리:  PresentationCore(PresentationCore.dll)
XAML의 XMLNS: http://schemas.microsoft.com/winfx/xaml/presentation

구문

public ref class ImageBrush sealed : public TileBrush
public final class ImageBrush extends TileBrush
<ImageBrush .../>
설명

ImageBrush는 콘텐츠를 이미지로 정의하는 TileBrush 형식이며, ImageSource 속성을 사용하여 지정합니다. 패턴 및 기타 효과를 만드는 동시에 이미지를 늘이고 정렬하고 바둑판식으로 배열하는 방법을 제어할 수 있습니다. 다음 이미지에서는 ImageBrush로 얻을 수 있는 몇 가지 효과를 보여 줍니다.

ImageBrush는 도형, 컨트롤, 텍스트 등을 채울 수 있음

ImageBrush 출력 예제

앞에서 설명한 것처럼 ImageBrushImageSource로 영역을 그립니다. ImageBrush와 함께 사용하는 가장 흔한 ImageSource 형식은 비트맵 그래픽을 나타내는 BitmapImage입니다. DrawingImage를 사용하면 Drawing 개체를 사용하여 그릴 수 있지만 대신 DrawingBrush를 사용하는 것이 더 간단합니다. ImageSource 개체에 대한 자세한 내용은 이미징 개요를 참조하십시오.

ImageBrush 기능에 대한 자세한 내용은 이미지, 그림 및 시각적 표시로 그리기를 참조하십시오.

Freezable 기능

ImageBrush 클래스는 Freezable에서 상속되기 때문에 몇 가지 특수 기능을 제공합니다. 예를 들어, ImageBrush 개체를 리소스로 선언하고, 여러 개체 간에 공유하고, 성능 향상을 위해 읽기 전용으로 설정하고, 복제하고, 스레드로부터 안전하게 보호할 수 있습니다. Freezable 개체에서 제공하는 여러 기능에 대한 자세한 내용은 Freezable 개체 개요를 참조하십시오.

예제

이 예제에서는 ImageBrush 클래스를 사용하여 이미지로 영역을 그리는 방법을 보여 줍니다. ImageBrush는 해당 ImageSource 속성에 지정된 단일 이미지를 표시합니다.

다음 예제에서는 ImageBrush를 사용하여 단추의 Background를 그립니다.

이 언어는 지원되지 않거나 사용할 수 있는 코드 예가 없습니다.
<!-- This example shows how to use an ImageBrush to paint shapes and controls. -->
<Page  
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  Background="White">

  <StackPanel Margin="20">

    <!-- Sets the button's Background property with an 
         ImageBrush. The resulting
         button has an image as its background. -->
    <Button
     Foreground="White" FontWeight="Bold"
     FontSize="16pt" FontFamily="Verdana" 
     Content="Berries"
     Padding="20" 
     HorizontalAlignment="Left">
      <Button.Background>
        <ImageBrush ImageSource="sampleImages\berries.jpg" />
      </Button.Background>
    </Button>
  </StackPanel>
</Page>


기본적으로 ImageBrush는 현재 그리고 있는 영역을 완전히 채우도록 이미지를 늘립니다. 앞의 예제에서는 단추를 채우기 위해 이미지가 늘어나는데 이 경우 이미지가 왜곡될 수 있습니다. TileBrushStretch 속성을 Uniform 또는 UniformToFill로 설정하여 브러시가 이미지의 가로 세로 비율을 유지하도록 하면 이 동작을 제어할 수 있습니다.

ImageBrushViewportTileMode 속성을 설정하면 반복되는 패턴을 만들 수 있습니다. 다음 예제에서는 이미지에서 만들어진 패턴을 사용하여 단추를 그립니다.

이 언어는 지원되지 않거나 사용할 수 있는 코드 예가 없습니다.
<!-- This example shows how to use an ImageBrush to paint shapes and controls. -->
<Page  
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  Background="White">

  <StackPanel Margin="20">

    <!-- Sets the button's Background property with an 
         ImageBrush. The resulting
         button has an image as its background. -->
    <Button
     Foreground="White" FontWeight="Bold"
     FontSize="16pt" FontFamily="Verdana" 
     Content="Berries"
     Padding="20" 
     HorizontalAlignment="Left">
      <Button.Background>

        <!-- The ImageBrush's Viewport and TileMode
             are set to produce a pattern from the
             image. -->
        <ImageBrush 
          Viewport="0,0,0.5,0.5" 
          TileMode="FlipXY"
          ImageSource="sampleImages\berries.jpg" />
      </Button.Background>
    </Button>
  </StackPanel>
</Page>


ImageBrush 클래스에 대한 자세한 내용은 이미지, 그림 및 시각적 표시로 그리기를 참조하십시오.

이 코드 예제는 ImageBrush 클래스에 대해 제공되는 보다 큰 예제의 일부입니다. 전체 샘플을 보려면 ImageBrush 샘플을 참조하십시오.

추가 코드

방법: 배경으로 사용된 이미지의 가로 세로 비율 유지 이 예제에서는 ImageBrushStretch 속성을 사용하여 이미지의 가로 세로 비율을 유지하는 방법을 보여 줍니다.
권한

상속 계층 구조

System::Object
  System.Windows.Threading::DispatcherObject
    System.Windows::DependencyObject
      System.Windows::Freezable
        System.Windows.Media.Animation::Animatable
          System.Windows.Media::Brush
            System.Windows.Media::TileBrush
              System.Windows.Media::ImageBrush
스레드로부터의 안전성

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.
플랫폼

Windows Vista

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

3.5, 3.0에서 지원

+ Recent posts