今天就想在Textbox上显示Error的信息的时候,字体变红色,发现并不支持。所以研究了下RichTextBox。留着以后备用。
(1) 设置行间距:
<RichTextBox Height="255" HorizontalAlignment="Left" Margin="0,25,-0.2,0" Name="txtMessage" VerticalAlignment="Top" Width="541" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" RenderTransformOrigin="0.442,0.65">
<RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
<!--<Setter Property="LineHeight" Value="20"/>-->
</Style>
</RichTextBox.Resources>
</RichTextBox>
(2)清空:
if (txtMessage.Document.Blocks.Count() > 200)
{
txtMessage.Document.Blocks.Clear();
}
(3)添加文本:
方式1: richTextBox.AppendText("p: "+ p);
richTextBox.AppendText("\n");
方式2:txtMessage.Document.Blocks.Add(new Paragraph(new Run(pMessage) { Foreground = Brushes.Black }));//可以设置字体颜色,字体粗细等。
例:
void appendTextWithColor(string pText,Brush pColor,FontWeight pFontWeight)
{
richTextBox.Document.Blocks.Add(new Paragraph(new Run(pText) { Foreground = pColor, FontWeight = pFontWeight}));
}
调用:
appendTextWithColor("hello",Brushes.Red,FontWeights.Bold);
appendTextWithColor("me too", Brushes.Green,FontWeights.Normal);