問題タブ [avalonedit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
911 参照

c# - AvalonEdit で仮想空間を有効にする方法は?

AvalonEdit で、Visual Studio と同様の「仮想空間」機能を実現したいと考えています。

つまり、キャレットはテキスト行の末尾を超えて配置でき、任意のキーを押すと、一致するようにスペースが自動的に追加されます。

私はこの機能に非常に慣れていますが、Google で検索しても AvalonEdit のコードを調べても、サポートされている場合に有効にする方法の手がかりが得られませんでした。

そうでない場合は、キャレット処理メカニズムを拡張する方法を提案してください。

ありがとう!

0 投票する
1 に答える
397 参照

c# - Microsoft Surface アプリケーションで AvalonEdit を使用するには?

Microsoft Surface アプリケーションでAvalonEditを使用しています。うまく機能していますが、折りたたみに問題が 1 つあります。折りたたみを有効にするこの小さな + アイコンがあります。しかし、適切な連絡先ハンドラーを登録する方法がわかりません。それを行う方法のヒントはありますか?

0 投票する
4 に答える
10670 参照

c# - AvalonEdit WPF TextEditor (SharpDevelop): 特定の範囲のテキストを強調表示する方法は?

信じられないほど素晴らしい AvalonEdit WPF TextEditor コントロールには、重要な機能が欠けているようです。少なくとも、私にはそれがわかりません。オフセットと長さを指定して、TextDocument 内のその部分を HighlightColor で強調表示します。シンプルですね。

どうやらそうではありません。私は RTFM を使用しており、「構文の強調表示」に関するドキュメントでさらに混乱しました。他の誰かが SharpDevelop フォーラムで同じ質問をしましたが、Herr Grunwald の回答が理解できません。

DocumentHighlighter クラスを使用した私の試みは次のとおりです(もちろん機能しません)。

助けてくれてありがとう!

0 投票する
5 に答える
14150 参照

syntax-highlighting - AvalonEdit構文ファイル(.xshd)を作成し、それをアセンブリに埋め込むにはどうすればよいですか?

AvalonEditのカスタム強調表示ルールを定義しようとしています。このためのドキュメントはないようです。ファイル形式に関するドキュメントはいくつかありますが、定義を作成した後で実際にロードして使用する方法については何もありません。

構文の強調表示」wikiページ(古いWinForms TextEditorの場合)には、ディスク上の.xshdファイルから強調表示の定義を読み込む方法が記載されていますが、AvalonEditが組み込みの定義で行うのと同じように、リソースとして埋め込みます。 。

組み込みの蛍光ペンをロードするICSharpCode.AvalonEditプロジェクトのコードを見てきましたが、実際の「リソースからのロード」コードはDefaultHighlightingManager.LoadHighlightingで実行されます。これはプライベートであり、さらに奇妙なことに、どうやらリリースビルドでのみ呼び出されます。

私はいじくり回し続け、プライベートメソッドからコードの一部をコピーして貼り付け、うまくいくかもしれないし、うまくいかないかもしれない何かを一緒に考えてみることができますが、尋ねる価値があるようです:これを行う標準的な方法は何ですか?サードパーティのコードがリソースから強調表示の定義をロードするための推奨される方法はありますか?


ダニエルの答えは私に良いスタートを与えましたが、GetManifestResourceStreamに渡す文字列に名前空間名を含める必要があります。そうしないと、NullReferenceExceptionが発生します(nullストリームが返されるため)。

このメソッドを使用して、ResourceLoaderという静的クラスを.xshdファイルと同じプロジェクトフォルダーに追加することにしました。

その後、私はただ呼び出すことができますResourceLoader.LoadHighlightingDefinition("Name.xshd")

自宅でフォローしている人は、.xshdファイルのビルドアクションを埋め込みリソースに設定する必要があります。

0 投票する
1 に答える
6434 参照

c# - AvalonEdit:フォーカスされていない場合でも現在の行を強調表示します

私はAvalonEditを使用していますが、エディターにフォーカスがない場合でも、ユーザーが常にカレットがどの行にあるかを確認できるようにしたいと考えています。そのために、BackgroundRendererを使用して現在の行の背景を強調表示するコードを見つけて適合させました。

残念ながら、エディターがフォーカスされていないときにCaretOffsetを変更すると、エディターがフォーカスを失ったときに現在の行に、背景の長方形が配置されたままになります。エディターが再びフォーカスを取得するまで、新しい現在の行に同期されません。

私はこれがなぜ起こっているのかを理解しました(それを修正する方法ではありません)。IBackgroundRendererのドキュメントコメントによると、「バックグラウンドレンダラーは、関連する既知のレイヤーが描画することを選択した場合にのみ描画します。たとえば、カレットレイヤーのバックグラウンドレンダラーは、カレットが非表示の場合は非表示になります。」私のバックグラウンドレンダラーはKnownLayer.Caretに存在するので、そうです、エディターがフォーカスされていないときに更新されない理由がわかります。これは、カレットも非表示になっているためです。(それを考えると、私の長方形が表示されたままであることに実際に驚いています。)

CaretOffsetを設定した直後にtextEditor.TextArea.TextView.InvalidateLayer(KnownLayer.Caret)を明示的に呼び出しようとしましたが、効果はありませんでした。キャレットが非表示になっているため、呼び出しは無視されたと思います。

エディターにフォーカスがない場合でも、現在の行のハイライトを強制的に更新するための最良の方法は何ですか?


これが私のクラスのコードです。私は確かにこれを捨てて、それを行うためのより良い方法があれば別のアプローチをすることにオープンです。

次に、UserControlのコンストラクターで、レンダラーをエディターに追加します。

0 投票する
2 に答える
250 参照

wpf - 表示されていない場合、AvalonEditは更新されません

アプリケーションにAvalonEditを実装しました。1つの小さな問題を除いて、すべてが正常に機能します。エディターが表示されていないときに(たとえば、他のタブにある場合)、Textプロパティを使用してエディターの内容を手動で変更しても、エディターの内容は変更されません。次に、エディター自体のテキストに変更を加えると、プロパティの値がエディターからの値で上書きされます。

Textプロパティからコンテンツをリロードするようにエディタに手動で指示するにはどうすればよいですか?

手伝ってくれてありがとう!

0 投票する
1 に答える
4753 参照

c# - AvalonEdit での BraceFolding

Daniel Grünwald による BraceFoldingStrategy を使用します。

これは期待どおりに機能しますが、1 つの問題が残っています ここに画像の説明を入力

最後のブレースには常に最後の - アイコンがあります。私はそれを削除しようとしましたが、リスト newFoldings を見ると、折り畳みが 3 つしかないことがわかります。では、4番目はどこから来るのでしょうか?

編集

Daniel Grünwald によると、問題は、さまざまな折り畳みマネージャーを使用しなければならないことです。ただし、初期化コードで 2 番目の FolderingManager を設定するステートメントが見つかりません。多分ヒント?

編集2

現在インストールされているFoldingManagerに3つの折りたたみがあることを確認しましたが、4番目の折りたたみがどこに定義されているかはまだわかりません。

0 投票する
1 に答える
1651 参照

c# - AvalonEditでコード選択をプログラムで設定する方法は?

Microsoft Surface アプリケーションで AvalonEdit を使用しています。連絡先は、通常の WPF アプリケーションとは少し異なる方法で処理されるため、プログラムでコード選択を設定したいと考えています。

コード選択とは、ユーザーがマウスで選択すると背景が変更されるコードのこの部分を意味します。

選択範囲の開始位置と終了位置が DocumentLine または VisualLine になりました。しかし、どうすればこの選択を行うことができますか?

0 投票する
4 に答える
901 参照

wpf - ホストされた WPF 複合コントロールの奇妙なスクロールバー UI

私の Windows フォーム アプリケーションは、フォームの 1 つで AvalonEdit (問題の複合 WPF コントロール) をホストし、テキスト編集要件に対応します。私が使用するコードは次のとおりです。

スクロールバーを除いて、コードは正常にコンパイルおよび実行されます - http://dl.dropbox.com/u/2584752/avalonEditBug.png。バーの左側を右クリックすると、ArgumentOutOfRange 例外が発生します。

奇妙なことに、新しく作成したサンプル プロジェクトでコントロールをホストしようとしたときに、問題を再現できませんでした。テキスト エディターの最新ビルドを使用しており、必要なアセンブリがすべてインストールされています。

編集:エディターをユーザーコントロールにラップしても役に立ちません。

0 投票する
2 に答える
14966 参照

wpf - Word 2010 エディターを wpf アプリケーションに埋め込む

WPF アプリケーションで word エディターを使用するにはどうすればよいですか? WPF のみでホスティングしている Windows フォームを使用することは可能ですか? それを達成する別の方法はありますか?

AvalonEditを見つけましたが、必要な機能がありません。したがって、この方法を使用しても、私の問題は解決されない場合があります。

また、WPF で Windows フォーム コントロールをホストするためのものもいくつかありますが、それは私の答えではありませんでした。

wpfアプリでワードエディターをネイティブに使用する方法があることを理解したいですか? そのソリューションですべての API を使用できますか?

前もって感謝します。