ImageBrush.ImageSource Property
Assembly: PresentationCore (in presentationcore.dll)
XML Namespace: http://schemas.microsoft.com/winfx/2006/xaml/presentation
/** @property */ public ImageSource get_ImageSource () /** @property */ public void set_ImageSource (ImageSource value)
public function get ImageSource () : ImageSource public function set ImageSource (value : ImageSource)
<object ImageSource="imageUri"/>
For XAML information, see the ImageSource type.
imageUri System.String A URI of an image.
Property Value
The image displayed by this ImageBrush.This example shows how to use the ImageBrush class to paint an area by using 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.
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 fill the area that you are painting. In the previous 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.
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, Visuals, and Patterns Overview.
This code example is part of a larger example that is provided for the ImageBrush class. For the complete sample, see ImageBrush Sample.
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.