如何修改FlowDocumentReader中查找文本框的前景色与背景色?
问题原因
你修改外层FlowDocument和FlowDocumentReader的属性不生效,是因为自带的查找搜索框属于FlowDocumentReader控件模板的内部子元素,外层属性没有传递到内部的文本框控件上。
解决方案
方案1:添加内部隐式样式(最简单,优先使用)
直接在FlowDocumentReader的Resources节点下添加针对内部文本框的样式,覆盖默认的颜色配置:
<FlowDocumentReader Grid.RowSpan="4" Grid.Column="1" Name="flowDocReader" IsFindEnabled="True"> <FlowDocumentReader.Resources> <!-- 修改查找输入框的颜色 --> <Style TargetType="TextBox"> <Setter Property="Background" Value="White" /> <Setter Property="Foreground" Value="Black" /> <Setter Property="BorderBrush" Value="#FFABADB3" /> <Setter Property="Padding" Value="2,0" /> </Style> <!-- 可选:如果下拉搜索历史选项也有显示问题,添加这个样式 --> <Style TargetType="ComboBoxItem"> <Setter Property="Background" Value="White" /> <Setter Property="Foreground" Value="Black" /> </Style> </FlowDocumentReader.Resources> <FlowDocument Name="flowDoc"/> </FlowDocumentReader>
你可以根据自己的界面主题调整Background和Foreground的色值。
方案2:修改控件模板(方案1不生效时使用)
如果你项目中使用了第三方主题包、全局样式覆盖了FlowDocumentReader的默认模板,就需要手动修改控件模板:
- 在Visual Studio设计视图中右键点击FlowDocumentReader控件,选择「编辑模板」→「编辑副本」,将默认模板保存到资源字典中
- 在模板中找到名称为
PART_FindTextBox的TextBox控件 - 直接修改该控件的Background、Foreground属性为你需要的色值即可
内容的提问来源于stack exchange,提问作者user16052640
相关产品推荐
相关产品推荐

