私はWPFでRichTextBoxを持っていますが、これにはいくつかのカスタムオブジェクトを含むInlineUIContainer
が含まれています。そのUIContainerのUndoイベントを許可する方法は?RichTextBoxカスタムUIContainerの処理を取り消します
答えて
まず、元に戻すボタンにコマンドをバインドします。 これに似たCommandBindingを書く: <CommandBinding Command="Undo" Executed="ExecuteUndo" CanExecute="CanExecuteUndo"/>
次に、この
{Binding myUndoManager.CurrentContent, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True}
myUndoManager
のようなものにリッチテキストボックスのContent
を設定することはUndoManager
クラスの型としたDependencyPropertyです。このクラスを実装し、それをDependencyObject
とINotifyPropertyChanged
から継承する必要があります。このクラスでは、CurrentContent
はDependencyProperty
であり、表示する適切なコンテンツを保持し、PropertyChanged
イベントはRichTextBoxのContent
のすべての変更を処理します。 (クラスにコレクションを追加できます。このイベントの呼び出しごとに、コレクションに新しいアイテムを追加します。このコレクションのアイテムのタイプには、TextDifferences、ActionTypeなどのプロパティがあります)
それでは、コードの中にCanExecuteUndo
とExecuteUndo
の本文を実装するだけです。 (e.CanExecute
は、コレクションが空でない場合にだけ、CanExecuteUndo
内をtrueに設定します。そして、ExecuteUndo
コレクションから最後の項目を飛び出し、そのActionType
し、必要なアクションに応じてすることができる)
ドン」 myUndoManager
オブジェクトがウィンドウと同じクラスにある場合は、ウィンドウのDataContext
(またはRichTextBox)を{Binding RelativeSource={RelativeSource Self}}
に設定することを忘れないでください。
- 1. RichTextBoxスペースの追加を取り消す
- 2. MQTTでJWTの取り消しを処理する方法
- 3. はい/いいえ/取り消しでのキャンセルボタンの処理
- 4. PXLongOperationの取り消しの処理方法
- 5. テキストファイルの処理:テキストの折り返しを取り消す(列と行)
- 6. 取り消し自体を起動せずに取り消されたタスクを処理するには?
- 7. 処理を取り消す必要がありますか?開始(URL)?
- 8. C#Task.WaitAll()エラー処理による取り消し
- 9. RichTextBoxのハイパーリンクをクリックしてイベントを処理する方法
- 10. 取り消し線セルを削除してすべてのシートを反復処理します
- 11. カスタム例外処理
- 12. カスタム画像処理
- 13. 選択した要素のカスタムjQuery UIテーマフォントスタイルルールを取り消します。
- 14. Json.Netのカスタム属性処理
- 15. PHPのカスタム例外処理
- 16. キャレットでのカスタム前処理
- 17. Jhipster - jwtの取り消しを管理する方法は?
- 18. サードパーティ製の長時間実行メソッドをwrapするタスクの取り消しを処理する方法
- 19. RichTextBoxコントロールの取り消しスタックからアクションを削除するにはどうすればよいですか?
- 20. 取り消しリクエストがtrueを返すときにどのように処理するのですか?
- 21. WebApi Json.NETカスタム日付処理
- 22. Sparkカスタム前処理エスティメータ
- 23. Laravel 5.5カスタム例外処理
- 24. TYPO3:データ処理でカスタムCEのファイル/メディアを取得
- 25. MATLABはコマンドを取り消します
- 26. Laravel認証を取り消します
- 27. JWT Oauth2リフレッシュトークンを取り消します
- 28. Doorkeeperトークンを取り消します
- 29. コンフルエントカフカで消費者側のメッセージ処理エラーを処理する方法は?
- 30. ガウス消去の並列処理