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。