【发布时间】:2017-04-18 08:42:56
【问题描述】:
我正在使用RichEditBox,我正在实现一些选项,让用户编辑带有某种格式的文本。
问题是每次控件失去焦点时,高亮选择被隐藏,即使选择保持活动并且我实际上可以处理它。 p>
这是我正在使用的Template,如您所见,我已经删除了所有VisualState,但这并没有解决问题。
<Style TargetType="RichEditBox" x:Key="CustomRtfEditBoxStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RichEditBox">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Disabled" />
<VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver" />
<VisualState x:Name="Focused" />
<VisualState x:Name="UnFocused" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
...
现在,我想这不是问题所在,选择是在控件内部代码的某处进行管理的。
注意:我不能实际上使用workaround手动设置焦点丢失和获得时的选择背景颜色,因为文本是导出/加载为富文本,我不能弄乱用户设置。我需要一种方法来做到这一点,而无需实际更改格式化文本。
我注意到RichEditBox 类不是sealed,所以我想知道是否可以覆盖某些行为或做一些事情来解决这个问题,但我不知道从哪里开始。
我知道在 WPF 上还有其他一些解决方法可以解决这个问题(比如在失去焦点时保持突出显示的方便属性),但 UWP 上不存在。
您对如何执行此操作有任何想法吗?谢谢!
【问题讨论】:
标签: c# xaml windows-runtime uwp windows-10