Я работаю с RichEditBox
, и я реализую некоторые параметры, позволяющие пользователю редактировать текст с некоторым форматированием.Как сохранить выделенный текст в WinRT/UWP RichEditBox на фокус потерян?
Проблема заключается в том, что каждый раз, когда элемент управления теряет фокус , выбор изюминки скрыт, даже если выбор остается активным и я могу реально работать на нем.
Вот 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.
У вас есть идеи по поводу того, как это сделать? Благодаря!
Вот еще одно обходное решение: https://stackoverflow.com/questions/37524488/uwp-show-textbox-text-highlight-while-textbox-is-out-of-focus –