Skip to main content
.NET Framework Class Library
ImageBrushImageSource Property

Gets or sets the image displayed by this ImageBrush.

Namespace:   System.Windows.Media
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
Syntax
Public Property ImageSource As [%$TOPIC/ms612372_en-us_VS_110_2_0_0_0_0%]
public [%$TOPIC/ms612372_en-us_VS_110_2_0_1_0_0%] ImageSource { get; set; }
public:
property [%$TOPIC/ms612372_en-us_VS_110_2_0_2_0_0%]^ ImageSource {
	[%$TOPIC/ms612372_en-us_VS_110_2_0_2_0_1%]^ get ();
	void set ([%$TOPIC/ms612372_en-us_VS_110_2_0_2_0_2%]^ value);
}
member ImageSource : [%$TOPIC/ms612372_en-us_VS_110_2_0_3_0_0%] with get, set
<object ImageSource="imageUri"/>

For XAML information, see [%$TOPIC/ms612372_en-us_VS_110_2_0_5_0_0%].

XAML Values

imageUri

SystemString

A URI of an image.

Property Value

Type: System.Windows.MediaImageSource
The image displayed by this ImageBrush.
Dependency Property Information

Identifier field

ImageSourceProperty

Metadata properties set to true

None

Remarks

An ImageBrush paints an area with an ImageSource. The most common type of ImageSource to use with an ImageBrush is a BitmapImage, which describes a bitmap graphic. You can use a DrawingImage to paint using a Drawing object, but it is simpler to use a DrawingBrush instead. For more information about ImageSource objects, see Imaging Overview and Painting with Images, Drawings, and Visuals

Examples

This example shows how to use the ImageBrush class to paint an area with an image. An ImageBrush displays a single image, which is specified by its ImageSource property.

The following example paints the Background of a button by using an ImageBrush.



Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media.Imaging
Imports System.Windows.Media

Namespace Microsoft.Samples.Graphics.UsingImageBrush

    Public Class PaintingWithImagesExample
        Inherits Page

        Public Sub New()
            Background = Brushes.White
            Dim mainPanel As New StackPanel()
            mainPanel.Margin = New Thickness(20.0)

            ' Create a button.
            Dim berriesButton As New Button()
            With berriesButton
                .Foreground = Brushes.White
                .FontWeight = FontWeights.Bold
                Dim sizeConverter As New FontSizeConverter()
                .FontSize = CType(sizeConverter.ConvertFromString("16pt"), Double)
                .FontFamily = New FontFamily("Verdana")
                .Content = "Berries"
                .Padding = New Thickness(20.0)
                .HorizontalAlignment = HorizontalAlignment.Left
            End With

            ' Create an ImageBrush.
            Dim berriesBrush As New ImageBrush()
            berriesBrush.ImageSource = New BitmapImage(New Uri("sampleImages\berries.jpg", UriKind.Relative))

            ' Use the brush to paint the button's background.
            berriesButton.Background = berriesBrush

            mainPanel.Children.Add(berriesButton)
            Me.Content = mainPanel
        End Sub
    End Class
End Namespace
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
using System.Windows.Media;

namespace Microsoft.Samples.Graphics.UsingImageBrush
{

    public class PaintingWithImagesExample : Page
    {

        public PaintingWithImagesExample()
        {
            Background = Brushes.White;
            StackPanel mainPanel = new StackPanel();
            mainPanel.Margin = new Thickness(20.0);

            // Create a button.
            Button berriesButton = new Button();
            berriesButton.Foreground = Brushes.White;
            berriesButton.FontWeight = FontWeights.Bold;
            FontSizeConverter sizeConverter = new FontSizeConverter();
            berriesButton.FontSize = (Double)sizeConverter.ConvertFromString("16pt");
            berriesButton.FontFamily = new FontFamily("Verdana");
            berriesButton.Content = "Berries";
            berriesButton.Padding = new Thickness(20.0);
            berriesButton.HorizontalAlignment = HorizontalAlignment.Left;

            // Create an ImageBrush.
            ImageBrush berriesBrush = new ImageBrush();
            berriesBrush.ImageSource =
                new BitmapImage(
                    new Uri(@"sampleImages\berries.jpg", UriKind.Relative)
                );

            // Use the brush to paint the button's background.
            berriesButton.Background = berriesBrush;

            mainPanel.Children.Add(berriesButton);
            this.Content = mainPanel;
        }
    }
}
<!-- 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>

By default, an ImageBrush stretches its image to completely fill the area that you are painting. In the preceding example, the image is stretched to fill the button, possibly distorting the image. You can control this behavior by setting the Stretch property of TileBrush to Uniform or UniformToFill, which causes the brush to preserve the aspect ratio of the image.

If you set the Viewport and TileMode properties of an ImageBrush, you can create a repeating pattern. The following example paints a button by using a pattern that is created from an image.



Imports System
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media.Imaging
Imports System.Windows.Media

Namespace Microsoft.Samples.Graphics.UsingImageBrush

	Public Class TiledImageBrushExample
		Inherits Page

		Public Sub New()
			Background = Brushes.White
			Dim mainPanel As New StackPanel()
			mainPanel.Margin = New Thickness(20.0)

			' Create a button.
            Dim berriesButton As New Button()
            With berriesButton
                .Foreground = Brushes.White
                .FontWeight = FontWeights.Bold
                Dim sizeConverter As New FontSizeConverter()
                .FontSize = CType(sizeConverter.ConvertFromString("16pt"), Double)
                .FontFamily = New FontFamily("Verdana")
                .Content = "Berries"
                .Padding = New Thickness(20.0)
                .HorizontalAlignment = HorizontalAlignment.Left
            End With

            ' Create an ImageBrush.
            Dim berriesBrush As New ImageBrush()
            berriesBrush.ImageSource = New BitmapImage(New Uri("sampleImages\berries.jpg", UriKind.Relative))

            ' Set the ImageBrush's Viewport and TileMode
            ' so that it produces a pattern from
            ' the image.
            berriesBrush.Viewport = New Rect(0, 0, 0.5, 0.5)
            berriesBrush.TileMode = TileMode.FlipXY

            ' Use the brush to paint the button's background.
            berriesButton.Background = berriesBrush

            mainPanel.Children.Add(berriesButton)
            Me.Content = mainPanel
		End Sub
	End Class
End Namespace
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
using System.Windows.Media;

namespace Microsoft.Samples.Graphics.UsingImageBrush
{

    public class TiledImageBrushExample : Page
    {

        public TiledImageBrushExample()
        {
            Background = Brushes.White;
            StackPanel mainPanel = new StackPanel();
            mainPanel.Margin = new Thickness(20.0);

            // Create a button.
            Button berriesButton = new Button();
            berriesButton.Foreground = Brushes.White;
            berriesButton.FontWeight = FontWeights.Bold;
            FontSizeConverter sizeConverter = new FontSizeConverter();
            berriesButton.FontSize = (Double)sizeConverter.ConvertFromString("16pt");
            berriesButton.FontFamily = new FontFamily("Verdana");
            berriesButton.Content = "Berries";
            berriesButton.Padding = new Thickness(20.0);
            berriesButton.HorizontalAlignment = HorizontalAlignment.Left;

            // Create an ImageBrush.
            ImageBrush berriesBrush = new ImageBrush();
            berriesBrush.ImageSource =
                new BitmapImage(
                    new Uri(@"sampleImages\berries.jpg", UriKind.Relative)
                );

            // Set the ImageBrush's Viewport and TileMode 
            // so that it produces a pattern from 
            // the image.
            berriesBrush.Viewport = new Rect(0,0,0.5,0.5);
            berriesBrush.TileMode = TileMode.FlipXY;

            // Use the brush to paint the button's background.
            berriesButton.Background = berriesBrush;

            mainPanel.Children.Add(berriesButton);
            this.Content = mainPanel;
        }
    }
}
<!-- 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>

For more information about the ImageBrush class, see Painting with Images, Drawings, and Visuals.

This code example is part of a larger example that is provided for the ImageBrush class. For the complete sample, see ImageBrush Sample.

Version Information

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.