我已为Style
指定了Paragraph
,作为FlowDocumentReader
资源部分的一部分:
<FlowDocumentReader>
<FlowDocumentReader.Resources>
<Style x:Key="myStyle" TargetType="{x:Type Paragraph}">
<Setter Property="Foreground" Value="LightSteelBlue" />
<Setter Property="BorderBrush" Value="LightSteelBlue" />
<Setter Property="BorderThickness" Value="1.0" />
<Setter Property="FontStyle" Value="Italic" />
<Setter Property="FontSize" Value="{Binding Path=MyFontSize}" />
</Style>
</FlowDocumentReader.Resources>
</FlowDocumentReader>
我有一个.xaml文件,其中包含我的FlowDocument
,并且它有一些Paragraph
,其定义如下:
<Paragraph Style='{DynamicResource myStyle}">
Stuff here
</Paragraph>
我遇到的问题是Foreground
不适用于文本(它显示为黑色而不是LightSteelBlue),FontSize
属性不会改变MyFontSize
修改。
我已经检查了后面代码中的属性值,但是它已设置但不会导致UI中的更改。
如果FlowDocument
在运行时加载到FlowDocumentReader
,这似乎只是一个问题。如果XAML明确放置在.xaml文件中的FlowDocumentReader
内,则Foreground
的颜色正确,FontSize
会根据属性设置进行更改。
想法?
解决:
正如我在下面的回答中所写,将Style
块移动到FlowDocument
本身的参考资料部分可以解决问题。
答案 0 :(得分:0)
您是否尝试直接为段落设置前景?它必须是管理内容前景的不同的propety /附加属性。
答案 1 :(得分:0)
好吧,我通过将Style块从FlowDocumentReader Resources中移出并转移到FlowDocument本身的Resources部分来解决了这个问题。生成的FlowDocument看起来像这样:
<FlowDocument>
<FlowDocument.Resources>
<Style x:Key="myStyle" TargetType="{x:Type Paragraph}">
<Setter Property="Foreground" Value="LightSteelBlue" />
<Setter Property="BorderBrush" Value="LightSteelBlue" />
<Setter Property="BorderThickness" Value="1.0" />
<Setter Property="FontStyle" Value="Italic" />
<Setter Property="FontSize" Value="{Binding Path=MyFontSize}" />
</Style>
</FlowDocument.Resources>
<Paragraph Style="{DynamicResource myStyle}">
Stuff here
</Paragraph>
</FlowDocument>