我想要做什么 - 我有一个包含一些数据的网格,很多都是文本,我想要的是能够在所有文本中高亮某个字符串....
我有......测试一词 单元格中的文字是“test 123 testing 123”
我希望单词test显示为黄色,粗体(或我需要的任何其他样式)。 我通过使用datarowbound事件使用asp.net网格完成了这个操作,并将字符串“test”替换为一些为字符串提供所需样式的html。
我如何在Silverlight单元格中进行此操作?
也许值得注意的是,行在运行时以编程方式添加到网格中......
tcol = new DataGridTextColumn();
tcol.Binding = new System.Windows.Data.Binding("class_property");
tcol.Header = "Header";
tcol.IsReadOnly = true;
dgResults.Columns.Add(tcol);
感谢期待...... 史蒂夫
答案 0 :(得分:1)
从纯Silverlight角度来看,仅设置文本行部分(即文本块中的文本)的样式的方法是使用Run元素并将多个Run元素添加到文本块。
<强> CODE 强>
Run text = new Run();
Run dates = new Run();
Run comments = new Run();
text.Text = y.User;
dates.Text = " (" + y.TimeStamp.ToShortTimeString() + ")";
comments.Text = ":"+y.Comment;
dates.Foreground = new SolidColorBrush(Colors.Blue);
rpconversation.Inlines.Add(text);
rpconversation.Inlines.Add(dates);
rpconversation.Inlines.Add(comments);
将提供用户和评论具有标准黑色文本的文本,日期将具有蓝色文本。您可以在MSDN网站上了解更多相关信息。
但是,this论坛讨论了如何通过javascripting更改文本元素。也许读完它。
答案 1 :(得分:0)
有一个LoadingRow事件处理程序,它是DataGrid的一部分。在这种情况下,您可以像使用ASP .Net一样。