我有一个用户看到堆栈跟踪的文本块,如下所示:
System.ArgOutOfRangeExc。: 争论超出范围。
Parametername:index
在System.Collections.ArrayList.getItem(Int32索引)
// ...
at SomethingElse.formData.formData_CloseForm(Object sender,FormClosingEventArgs e)
这个想法是,像#34;系统......"得到灰色和堆栈跟踪的其余部分(这里:"在SomethingElse ....")不应该着色。
我不知道如何以及从何处开始以及如何管理此问题。有解决方案吗我正在使用C#和WPF
编辑:文本框中的文本不是静态的。每次用户单击DataGrid中的行时,文本都会更改,因此我需要以编程方式执行此操作(使用Substring将变得非常复杂)
答案 0 :(得分:4)
您可以在TextBlock
内使用多个Run
元素。每个Run
都可以拥有自己的格式。举个简单的例子:
<TextBlock FontSize="14" Margin="20">
<Run Text="This is Green," Foreground="Green" />
<Run Text="this is Red" Foreground="Red" />
<Run Text="and this is Blue AND Bold" Foreground="Blue" FontWeight="Bold" />
</TextBlock>
请注意,Run.Text
属性为DependencyProperty
,因此您还可以绑定其值。这也可以通过编程方式完成:
<TextBlock Name="TextBlock" FontSize="14" Margin="20" />
...
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
Run run = new Run("This is Green,");
run.Foreground = Brushes.Green;
TextBlock.Inlines.Add(run);
run = new Run(" this is Red");
run.Foreground = Brushes.Red;
TextBlock.Inlines.Add(run);
run = new Run(" and this is Blue AND Bold");
run.Foreground = Brushes.Blue;
run.FontWeight = FontWeights.Bold;
TextBlock.Inlines.Add(run);
}