我正在開發一個UWP應用程序,我正在使用一個RichEditBox
控件,而且我在撤銷功能方面遇到了一些問題。在RichEditBox中的當前撤銷組中包含文本更改?
我知道我可以使用BeginUndoGroup
方法從由RichEditBox
暴露ITextDocument
對象創建在編輯我的文字,我可以使用一個撤消組,因此用戶將撤消所有這些變化一起(當我打電話EndUndoGroup
太)。
對我來說,問題是我的應用程序中有一些自動完成功能,我不知道如何製作,以便我爲自動完成添加的字符/更改包含在上一個撤消組中。
例如,假設你輸入「H」字,我發現從
TextChanged
事件(或從RichEditBox
和我添加「ELLO」的文字,所以你最終用「你好」的另一事件,然後用綠色將整個單詞着色如果我使用
BeginUndoGroup
方法,我可以同時撤消添加的「ello」和綠色,但用戶仍然會以'h'字符結束或者,例如,如果我用隨機顏色爲每個新字符着色,我不知道如何製作它,以便撤消功能將撤消我的顏色更改以及用戶輸入的前一個字符。
有什麼辦法來解決這個問題(即包括當前/以前的撤銷組中的某些變化),還是我只需要拿出一些骯髒的黑客就像調用Undo
方法兩次當用戶希望撤銷更改,希望他不會注意到文本閃爍?
感謝您的幫助!
要製作一個像word這樣的輸入框太難了。 – lindexi