Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Beginner WPF Panels Grid with TextBlocks Example

0.00/5 (No votes)
17 Mar 2010 1  
How to create TextBlocks inside a WPF Grid

Introduction

I am in the process of teaching myself WPFXAML and basically general .NET development. Although I am not a professional developer, my goal is to become a good developer one day. This is my first article and it shows how one can use XAML to create grids in a WPF panel. A Grid is probably the most extensible panel available. A Grid gives the developer control over both rows and columns. One can consider a Grid to be similar to a database table, a data grid control in a WinForms application or maybe an HTML Table, but Grids work differently than tables. Grids are probably a better setup than their table counterpart. The screenshot below is what the end product will look like. 

Creating the Grid!

A Grid is composed of rows and columns similar to a table. We first start by declaring the Grid element. Then we declare a set of four RowDefinitions without any properties, and then we declare three ColumnDefinitions the same way we declared the RowDefinitions, without any properties. See the code snippet below:

<Window x:Class="WPFPanels_Grid.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Sundeepan's Panel Grids Example" Width="356">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions> 

After the Rows and Columns are defined, we declare the TextBlocks. Below is the code for the first TextBlock:

<TextBlock TextBlock.FontSize="36"
TextBlock.Foreground="Peru"
Background="Bisque"
Grid.Column="0"
Grid.Row="0"
Grid.RowSpan="2">1</TextBlock>   

Let's see what we did in the TextBlock declaration. First we specified the FontSize to be 36, this size will reflect on the number displayed in the TextBlock (refer to the screen shot). Then we set the Foreground to the color Peru and the Background to Bisque. The row and column position on the grid is also declared. We set the first TextBlock to the Column 0 (the first column) and Row 0 (the first row), and this TextBlock will span 2 columns declared by the RowSpan property. After all this is done, moving forward we set the text for the TextBlock to 1. Below is a code snippet that demonstrates the ColumnSpan attribute for TextBlock number 8. ColumnSpan is almost the same as a RowSpan except this TextBlock will span 3 columns, it's pretty much self explanatory.

<TextBlock TextBlock.FontSize="36"
Background="Gold"
Grid.Column="0"
Grid.Row="4"
Grid.ColumnSpan="3">8</TextBlock> 

So the code declares that the first TextBlock will show the number "1" with a font size of 36 with the foreground color as Peru and the background color as Bisque. The placement of the block will be in column 0, row 0 of the grid spanning two rows. Keep in mind that the grid has no colors. It is simply supplying the configuration, the TextBlocks inside the grids provide all the attributes.

History

  • 17th March, 2010: Initial post

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here