WPF RichTextBox:SelectionOpacity虽然没有集中
问题描述:
是否有可能使WPF 4.0 RichTextEdit显示它的选择,而不是专注? 默认情况下,当RichTextEdit失去焦点时,突出显示的选择矩形会消失。WPF RichTextBox:SelectionOpacity虽然没有集中
以下natually不起作用。
<RichTextBox>
<RichTextBox.Style>
<Style TargetType="{x:Type RichTextBox}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="false">
<Setter Property="SelectionOpacity" Value="1"/>
</Trigger>
</Style.Triggers>
</Style>
</RichTextBox.Style>
<FlowDocument>
<Paragraph>
<Run>Example Text</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
答
您必须处理LostFocus
事件以防止选择被删除。
XAML:
<RichTextBox LostFocus="RichTextBox_OnLostFocus" />
后面的代码:
void RichTextBox_OnLostFocus(object sender, RoutedEventArgs e)
{
var rtb = e.Source as RichTextBox;
if (rtb == null)
return;
if (!rtb.Selection.Start.Equals(rtb.Selection.End))
{
e.Handled = true;
}
}
答
老问题,但任何人都希望在未来的答案 - 从Control继承任何控件有IsInactiveSelectionHighlightEnabled财产。
如果将此属性设置为true,则当包含的控件失去焦点时(虽然使用的颜色画笔不同),所选文本将保持高亮显示。
这应该覆盖WPF RichTextBox或FlowDocumentReader。