Reader Level:

Border in WPF

By Mahesh Chand on Dec 18, 2009
This article discusses how to use the Border element to place borders around other elements in WPF using XAML.

Some elements in WPF do not have a border property. To place a border around an element, WPF provides the Border element. Similar to other WPF elements, the Border has Width, Height, Background, and HorizontalAlignment and VerticalAlignment properties.


Besides these common properties, Border has two properties that make Border a border. These two properties are BorderThickness and BorderBrush. The BorderBrush property represents the brush that is used to draw the border. The BorderThickness property represents the thickness of the border.


The CornerRadius property represents the degree to which the corners of a Border are rounded.

The following code snippet creates a Border element and sets its properties.









        Height="250" />

The code snippet in Listing 1 creates a Border around a Canvas element and sets its properties. 

The output looks like Figure 1 where all child controls are wrapped horizontally.












    <Canvas Background="LightCyan" >


            Canvas.Left="30" Canvas.Top="20"

            Height="200" Width="200"

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




Listing 1

The output looks like Figure 1 where you can see the green border with rounded corners.


Figure 1

The Border class in WPF represents a Border element. The code snippet listed in Listing 2 is C# code that creates a Border, sets its properties, and places it around a Canvas element.

private void CreateDynamicBorder()


    Border border = new Border();

    border.Background = new SolidColorBrush(Colors.LightGray);

    border.BorderThickness = new Thickness(5);

    border.BorderBrush = new SolidColorBrush(Colors.Green);

    border.CornerRadius = new CornerRadius(15);

    border.Width = 270;

    border.Height = 250;


    Canvas cnvas = new Canvas();

    Rectangle rect = new Rectangle();

    rect.Width = 200;

    rect.Height = 200;

    rect.Fill = new SolidColorBrush(Colors.Black );

    rect.StrokeThickness = 10d;



    border.Child = cnvas;


    RootLayout.Content = border;



Listing 2

Note. Border can have only one child element. If you need to place border around multiple elements, you must place a border around each element.  

Mahesh Chand
Mahesh Chand

C# Corner founder, 10-times Microsoft MVP, technical author, and software architect. Mahesh authored his first book, A Programmer’s Guide to ADO.NET in C# with APress at the age of 25. C# Corner is a memb... Read more



Spire.Doc - Free .NET Word API
Use Spire.Doc to create, read, write, print, and convert word documents to OpenXML, RTF, TXT, XPS, EPUB, EMF, HTML, Image and PDF.

Trending up