8,735
社区成员
发帖
与我相关
我的任务
分享
Paragraph 1, Run's Text is 123456
Paragraph 2, Run's Text is AAA
Paragraph 2, Run's Text is
Paragraph 2, Run's Text is EEEE
Paragraph 2, Run's Text is
Paragraph 2, Run's Text is CCC
Paragraph 2, Run's Text is
Paragraph 2, Run's Text is DDD
Paragraph 3, Run's Text is AAA
Paragraph 3, Run's Text is
Paragraph 3, Run's Text is EE
Paragraph 3, Run's Text is
Paragraph 3, Run's Text is C
Paragraph 3, Run's Text is
Paragraph 3, Run's Text is D
<FlowDocument PagePadding="5,0,5,0" AllowDrop="True">
<Paragraph>
<Run>123456</Run>
</Paragraph>
<Paragraph>
<Run>AAA</Run>
<Run>EEEE</Run>
<Run>CCC</Run>
<Run>DDD</Run>
</Paragraph>
<Paragraph>
<Run>AAA</Run>
<Run>EE</Run>
<Run>C</Run>
<Run>D</Run>
</Paragraph>
</FlowDocument>
private static IEnumerable<Run> FindSpecaiRuns(RichTextBox source, string text)
{
if (source == null)
{
throw new ArgumentException();
}
if (string.IsNullOrEmpty(text))
yield return null;
if (source.Document == null)
yield return null;
Run run = null;
FlowDocument doc = source.Document;
int index = 0;
foreach (Paragraph item in doc.Blocks)
{
index++;
InlineCollection ic = item.Inlines;
Inline il = ic.FirstInline;
while (il != null)
{
run = il as Run;
if (run != null)
{
System.Diagnostics.Debug.Print(string.Format("Paragraph {0}, Run's Text is {1}", index, run.Text));
if (run.Text == text)
yield return run;
il = il.NextInline;
}
}
}
}
private static Run FindSpecaiRun(RichTextBox source, string text)
{
if (source == null)
{
throw new ArgumentException();
}
if (string.IsNullOrEmpty(text))
return null;
Run run = null;
if (source.Document == null)
return run;
FlowDocument doc = source.Document;
foreach (Paragraph item in doc.Blocks)
{
InlineCollection ic = item.Inlines;
Inline il = ic.FirstInline;
while (il != null)
{
run = il as Run;
if (run != null)
{
if (run.Text == text)
return run;
il = il.NextInline;
}
}
}
return run;
}
<Run x:Name="RunA">AAA</Run>