<p>Visually both of the following snippets produce the same UI. So why are there 2 controls..<br>
<strong>Snippet1</strong>  </p>

<pre><code>&lt;TextBlock&gt;Name:&lt;/TextBlock&gt;
&lt;TextBox Name="nameTextBox" /&gt;
</code></pre>

<p><strong>Snippet2</strong></p>

<pre><code>&lt;Label&gt;Name:&lt;/Label&gt;
&lt;TextBox Name="nameTextBox" /&gt;
</code></pre>

<p>(<em>Well I am gonna answer this myself... thought this is a useful tidbit I learnt today from <a href="https://rads.stackoverflow.com/amzn/click/com/0596510373" rel="noreferrer" rel="nofollow noreferrer">Programming WPF</a></em>)  </p>

[{'answer_id': 59104, 'author': 'Gishu', 'author_id': 1695, 'author_profile': 'https://Stackoverflow.com/users/1695', 'pm_score': 4, 'selected': False, 'text': '<p>Label has an important <strong>focus handling</strong> responsibility.Its purpose is to allow you to place a caption with an access key. It has a <strong>Target</strong> property, which indicates the target of the access key. Like this...</p>\n\n<pre><code>&lt;Label Target="{Binding ElementName=nameTextBox}"&gt;_Name:&lt;/Label&gt;\n&lt;TextBox x:Name="nameTextBox" /&gt;\n</code></pre>\n\n<p>In the absence of the Target property, the Label control does nothing useful. You\'ll just hear a beep if you press the access key indicating \'unable to process request\'</p>\n'}, {'answer_id': 59629, 'author': 'Alan Le', 'author_id': 1133, 'author_profile': 'https://Stackoverflow.com/users/1133', 'pm_score': 8, 'selected': True, 'text': '<p>The WPF Textblock inherits from <strong>FrameworkElement</strong> instead of deriving from <strong>System.Windows.Control</strong> like the Label Control. This means that the Textblock is much more lightweight. The downside of using a textblock is no support for Access/Accerelator Keys and there is no link to other controls as target.</p>\n\n<p><strong><em>When you want to display text by itself use the TextBlock</em></strong>. The benefit is a light, performant way to display text.</p>\n\n<p><strong><em>When you want to associate text with another control like a TextBox use the Label control</em></strong>. The benefits are access keys and references to target control.</p>\n'}, {'answer_id': 1103456, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': -1, 'selected': False, 'text': '<p>Label can be used as an alternative to TextBlock for situations where minimal text support is required such as the label for a control. Using Label can be advantageous because it requires even less resources (lighter weight) then a TextBlock. </p>\n'}, {'answer_id': 4058717, 'author': 'Nam G VU', 'author_id': 248616, 'author_profile': 'https://Stackoverflow.com/users/248616', 'pm_score': 2, 'selected': False, 'text': '<p>With <code>TextBlock</code> we can easily have multi-line support I guess - using <code>TextWrapping</code>. </p>\n\n<p>Using <code>Label</code> in such cases, e.g. displaying validation message, need to use <code>&lt;AccessKey&gt;</code> tags, which is less straight-forward than <code>TextBlock</code>.</p>\n\n<p>On the other hand, using <code>TextBlock</code> not allow us to set the <code>BorderBrush</code> property.</p>\n\n<p>So, to me, the two controls should be combined into a text-full-feature control.</p>\n'}, {'answer_id': 15239746, 'author': 'Jon Crowell', 'author_id': 138938, 'author_profile': 'https://Stackoverflow.com/users/138938', 'pm_score': 2, 'selected': False, 'text': "<p>The two biggest reasons for the confusion regarding TextBlocks and Labels are Windows Forms and common sense. </p>\n\n<ol>\n<li><p>When you wanted to slap a small bit of text on your form in Windows Forms, you used a Label, so it follows (incorrectly) that you would do the same thing with a WPF Label.</p></li>\n<li><p>Common sense would lead you to believe that a Label is lightweight and a TextBlock isn't, when the opposite is true.</p></li>\n</ol>\n\n<p>Note that you can put a TextBlock inside a Label.</p>\n"}, {'answer_id': 25827443, 'author': 'iYadav', 'author_id': 1328637, 'author_profile': 'https://Stackoverflow.com/users/1328637', 'pm_score': 2, 'selected': False, 'text': '<p>Label takes all kinds of data inputs like String, Number etc...\nTextBlock, as the name suggests, only accepts a Text string.</p>\n'}]
['https://Stackoverflow.com/questions/59099', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1695/']