
RichTextBox HTMLエディタで、ソース編集を指定すると、HTML記述のソースを RichTextBox に表示しています。 1.インテリセンスのようにキー操作で開くPopupウインドウ今回は、タグを入力補完するので、'<'キーが押されたらPopupメニューが開きます。この、Popupメニューを開く位置を知る方法です。 rb.CaretPosition.GetCharacterRect(LogicalDirection.Forward); rb は RichTextBox で、取得した矩形の左下隅をPopupメニューの表示位置にしました。 2.間接的に文字入力 入力補完のためのPopupメニューが表示されたら、フォーカスはPopupメニュー上の ListBox に移します。これで、UP、DOWNキーで文字列を選べます。 2.1.PopupウインドウのOnPreviewTextInput() をオーバライドOnPreviewTextInput()は、ListBox で処理する、UP、DOWNキーなどは通らないようです。ここで、文字を判断して処理します。
これ以外に、入力に応じて、先頭が一致する選択肢を自動選択し、ListBoxを更新しています。 3.Popupウインドウを閉じるときタグ文字列を選択するなどして、Popupウインドウが閉じたとき、RichTextBox では、入力した文字列が選択状態になっていました。これをPopupウインドウの終了で解除しました。 this.IsOpen = false;//Popupを閉じる |

