Click here to Skip to main content
15,881,248 members
Articles / Desktop Programming / XAML

Tips: Formatting Silverlight TextBlock Control

Rate me:
Please Sign up or sign in to vote.
4.98/5 (10 votes)
9 May 2011CPOL2 min read 23.8K   3   12
How to format Silverlight TextBlock control

In general, we use multiple TextBlock controls inside a StackPanel to format a single line. In this post, I will show you a different way to format a single line. This is very useful if you want to bind any data in the middle of the text string. Also, this is useful if you want to format the line with multiple formatting option. Read to know more about it.

In general, if we want to bind a data in between text or want to style a single line with multiple text format, how do we design it? We use StackPanel with multiple TextBlock wrapped using proper orientation as shown below:

XML
<StackPanel Orientation="Horizontal" 
DataContext="{StaticResource User}">
    <TextBlock Text="Welcome "/>
    <TextBlock Text="{Binding Name}"/>
    <TextBlock Text=" to our site."/>
</StackPanel>

Now, in this tip, I will show you a different option to do the same thing in a more proficient way. Instead of using a multiple TextBlock control, we will use a single TextBlock control now and in this case, we will not need any StackPanel too.

So, how to implement it? Add a TextBlock control in your XAML page and insert <Run /> tag to insert multiple text chunks. All the text formatting properties like FontFamily, FontSize, Foreground color, etc. are also part of the <Run /> tag.

In the below code snippet, I demonstrated the use of "Run" to insert a DataBinding at the middle of the string to add the User's name:

XML
<TextBlock DataContext="{StaticResource User}">
    <Run Text="Welcome"/>
    <Run Text="{Binding Name}"/>
    <Run Text="to our site"/>
</TextBlock>

What's more? There are other options too. You can directly use <Bold />, <Italic />, <Underline /> tags to format the text in a proper fashion. If you want to add a single line break, you can do so by using the <LineBreak /> tag. If you don't use the LineBreak tag, the texts will place in a single line. Also, if you want to add more formatting to your text, you can use the <Span /> tag which has a set of properties to control your styling.

Check the below code for more details:

XML
<TextBlock>
    <Bold>This is a Bold Text.</Bold>
    <Italic>It's an Italic Text.</Italic>
    <Underline>This Text has Underline.</Underline>
    <LineBreak/>
    <Span Foreground="Red">Spaned text with Color Red.</Span>
</TextBlock>

The above code will output the following text in the UI:

image

Hope this tip will help you next time while working with text formatting in Silverlight. There are many options there to customize the string style. Explore it more and who knows, it will help you in future.

This article was originally posted at http://www.kunal-chowdhury.com/feeds/posts/default

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Technical Lead
India India

Kunal Chowdhury is a former Microsoft "Windows Platform Development" MVP (Most Valuable Professional, 2010 - 2018), a Codeproject Mentor, Speaker in various Microsoft events, Author, passionate Blogger and a Senior Technical Lead by profession.

He is currently working in an MNC located in India. He has a very good skill over XAML, C#, Silverlight, Windows Phone, WPF and Windows app development. He posts his findings, articles, tutorials in his technical blog (www.kunal-chowdhury.com) and CodeProject.


Books authored:


Connect with Kunal on:





Comments and Discussions

 
GeneralMy vote of 3 Pin
janslodicka30-May-11 3:21
janslodicka30-May-11 3:21 
GeneralRe: My vote of 3 Pin
Kunal Chowdhury «IN»30-May-11 3:39
professionalKunal Chowdhury «IN»30-May-11 3:39 
GeneralRe: My vote of 3 Pin
janslodicka30-May-11 4:20
janslodicka30-May-11 4:20 
GeneralJoking? Pin
janslodicka30-May-11 3:01
janslodicka30-May-11 3:01 
GeneralRe: Joking? Pin
Kunal Chowdhury «IN»30-May-11 3:22
professionalKunal Chowdhury «IN»30-May-11 3:22 
GeneralRe: Joking? Pin
janslodicka30-May-11 4:28
janslodicka30-May-11 4:28 
GeneralMy vote of 5 Pin
Brij9-May-11 3:21
mentorBrij9-May-11 3:21 
GeneralRe: My vote of 5 Pin
Kunal Chowdhury «IN»9-May-11 3:41
professionalKunal Chowdhury «IN»9-May-11 3:41 
Thanks brother for your continuous support.Thumbs Up | :thumbsup:

Regards - Kunal Chowdhury | Microsoft MVP (Silverlight) | CodeProject MVP | Software Engineer

New Articles on Silverlight 5 Beta:  Debugging Data Bindings in XAML | Working with Multiple Click (ClickCount)

Appreciate your Vote and Feedback

GeneralMy vote of 5 Pin
Abhishek Sur9-May-11 3:20
professionalAbhishek Sur9-May-11 3:20 
GeneralRe: My vote of 5 Pin
Kunal Chowdhury «IN»9-May-11 3:37
professionalKunal Chowdhury «IN»9-May-11 3:37 
GeneralNice job Pin
Shahriar Iqbal Chowdhury/Galib9-May-11 3:05
professionalShahriar Iqbal Chowdhury/Galib9-May-11 3:05 
GeneralRe: Nice job Pin
Kunal Chowdhury «IN»9-May-11 3:12
professionalKunal Chowdhury «IN»9-May-11 3:12 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.