Making specific Text Boldefaced in a TextBox
use a RichTextBox, below a method that i have wrote for this problem - hope it helps ;-)
/// <summary>
/// This method highlights the assigned text with the specified color.
/// </summary>
/// <param name="textToMark">The text to be marked.</param>
/// <param name="color">The new Backgroundcolor.</param>
/// <param name="richTextBox">The RichTextBox.</param>
/// <param name="startIndex">The zero-based starting caracter position.</param>
public static void ChangeTextcolor(string textToMark, Color color, RichTextBox richTextBox, int startIndex)
{
if (startIndex < 0 || startIndex > textToMark.Length-1) startIndex = 0;
System.Drawing.Font newFont = new Font("Verdana", 10f, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, 178, false);
try
{
foreach (string line in richTextBox.Lines)
{
if (line.Contains(textToMark))
{
richTextBox.Select(startIndex, line.Length);
richTextBox.SelectionBackColor = color;
}
startIndex += line.Length +1;
}
}
catch
{ }
}
You can use TextBlock
with other TextBlock
s or Run
s inside:
<TextBlock>
normal text
<TextBlock FontWeight="Bold">bold text</TextBlock>
more normal text
<Run FontWeight="Bold">more bold text</Run>
</TextBlock>
You will need to use a RichTextBox
to achieve this:
<RichTextBox Name="richTB">
<FlowDocument>
<Paragraph>
<Run FontWeight="Bold">Your Name:</Run>
<Run Text="{Binding NameProperty}"/>
</Paragraph>
</FlowDocument>
</RichTextBox>
But why would you want "Your Name" to be editable? Surely you would want it as a separate, readonly, label?
<StackPanel Orientation="Horizontal">
<Label FontWeight="Bold">Your Name:</Label>
<TextBox Text="{Binding NameProperty}"/>
</StackPanel>