在我的app.xaml中:
<Application.Resources>
<SolidColorBrush x:Key="colorBrush1" Color="Orange" Opacity="1"/>
<SolidColorBrush x:Key="colorBrush2" Color="Green" Opacity="1"/>
</Application.Resources>
在我的代码隐藏中:
Run run = new Run("My name is Bob!");
run.SetResourceReference(ForegroundProperty, "colorBrush1");
run.SetResourceReference(BackgroundProperty, "colorBrush2");
Paragraph paragraph = new Paragraph(run);
this.flowDocument.Blocks.Add(paragraph);
预期结果:运行时会显示上面app.xaml中定义的前景色和背景色。
实际结果:前景颜色有效(显示为橙色),但背景仍保持透明。
为什么不将运行的背景绑定到资源工作,就像前景一样??? 我尝试首先将run和paragraph添加到FlowDocument然后绑定,但结果是同样的。
答案 0 :(得分:1)
原因是需要澄清BackgroundProperty。这就是你想要的:
Run run = new Run("My name is Bob!");
run.SetResourceReference(Run.ForegroundProperty, "colorBrush1");
run.SetResourceReference(Run.BackgroundProperty, "colorBrush2");
真正的谜团就是为什么只写“ForegroundProperty”。