Silverlight Canvas Control

Silverlight Canvas Control

The Canvas control, used as a container for child controls, defines functionality to position the child controls. This article demonstrates how to create and use a Canvas control in Silverlight using C# and XAML.

Creating a Canvas

The Canvas element represents a Silverlight Canvas control in XAML.

 

<Canvas/>

 

The Canvas control has three properties.  The Left property represents the distance between the left side of a control and its parent container Canvas. The Top property represents the distance between the top of a control and its parent container Canvas.

 

The code in Listing 1 creates a Canvas and adds three Rectangle controls and position them using Canvas control properties.

 

<Canvas Background="LightCyan" >

    <Rectangle

    Canvas.Left="10" Canvas.Top="10"

    Height="200" Width="200"

    Stroke="Black" StrokeThickness="10" Fill="Red" />

 

    <Rectangle

    Canvas.Left="60" Canvas.Top="60"

    Height="200" Width="200"

    Stroke="Black" StrokeThickness="10" Fill="Blue" />

 

    <Rectangle

    Canvas.Left="110" Canvas.Top="110"

    Height="200" Width="200"

    Stroke="Black" StrokeThickness="10" Fill="Green" />

  

</Canvas>

Listing 1

The output looks like Figure 1.


Figure 1

The z-order of a control determines whether the control is in front of or behind another overlapping control. The default z-order of controls is the order controls are created in. The ZIndex property of Canvas represents the z-order of a control. The maximum value

CanvasImg1.jpg

g 2 changes the z-order of these rectangles using the ZIndex property of the Canvas. 

The code snippet in Listing 2 sets the position of the Canvas control in the left top corner of the page.

<Canvas Background="LightCyan" >

    <Rectangle

    Canvas.Left="10" Canvas.Top="10"

    Height="200" Width="200"

    Stroke="Black" StrokeThickness="10"

        Fill="Red" Canvas.ZIndex="2" />

 

    <Rectangle

    Canvas.Left="60" Canvas.Top="60"

    Height="200" Width="200"

    Stroke="Black" StrokeThickness="10"

        Fill="Blue" Canvas.ZIndex="1" />

 

    <Rectangle

    Canvas.Left="110" Canvas.Top="110"

    Height="200" Width="200"

    Stroke="Black" StrokeThickness="10"

        Fill="Green" Canvas.ZIndex="3" />

  

</Canvas>

Listing 2

The new output looks like Figure 2 where blue rectangle is below red and green is at the top of both of them.

CanvasImg2.jpg

Figure 2

 

Formatting a Canvas

The Background property of the Canvas sets the background colors of a Canvas. You may use any brush to fill the border. The code in Listing 3 uses a linear gradient brush to draw the background of a Canvas.

<Canvas.Background>

    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >

        <GradientStop Color="Blue" Offset="0.1" />

        <GradientStop Color="Orange" Offset="0.25" />                   

        <GradientStop Color="Green" Offset="0.75" />

        <GradientStop Color="Red" Offset="1.0" />

    </LinearGradientBrush>

</Canvas.Background>

<Canvas.Foreground>

    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1" >                   

        <GradientStop Color="Orange" Offset="0.25" />

        <GradientStop Color="Green" Offset="1.0" />                   

    </LinearGradientBrush>

</Canvas.Foreground>

Listing 3

 

The new Canvas looks like Figure 3.

CanvasImg3.jpg

Figure 3

Setting Image as Background of a Canvas

To set an image as background of a Canvas, we can set an image as the Background of the Canvas. The code snippet in Listing 4 sets the background of a Canvas to an image. 

<Canvas.Background>

    <ImageBrush ImageSource="Flowers.jpg" />

</Canvas.Background>

Listing 4

The new output looks like Figure 4.

CanvasImg4.jpg

Figure 4

Summary

In this article, I discussed how we can create a Canvas control in Silverlight and C#.  We saw how we can format a Canvas by setting its background property. After that, we saw you to set an image as the background of a Canvas. We also saw how we can take advantages of Canvas properties Left, Top, and ZIndex to position child controls on a canvas.

 


Similar Articles
Mindcracker
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.