WinFormsからWPFへアプリケーションを移植していますが、テキストボックスに選択範囲の行番号と列番号を取得しようとしています。私はWinFormsで非常に単純に行うことができましたが、WPFはRichTextBoxを実装する全く異なる方法を持っていますので、どうやってそれをどうやって進めるのか分かりません。ここでc#WPFのリッチテキストボックスの行番号と列番号
は私のWinFormsソリューションを使用すると、現在の選択の指標を得ることができないので、これはWPFでは動作しません
int line = richTextBox.GetLineFromCharIndex(TextBox.SelectionStart);
int column = richTextBox.SelectionStart - TextBox.GetFirstCharIndexFromLine(line);
LineColumnLabel.Text = "Line " + (line + 1) + ", Column " + (column + 1);
です。 HERE
はWORKINGソリューションです:このような
int lineNumber;
textBox.CaretPosition.GetLineStartPosition(-int.MaxValue, out lineNumber);
int columnNumber = richTextBox.CaretPosition.GetLineStartposition(0).GetOffsetToPosition(richTextBox.CaretPosition);
if (lineNumber == 0)
columnNumber--;
statusBarLineColumn.Content = string.Format("Line {0}, Column {1}", -lineNumber + 1, columnNumber + 1);
全く違う方法を試しましたか? –
関連性が高い可能性があります:http://stackoverflow.com/questions/957441/richtextbox-wpf-does-not-have-string-property-text?rq=1 –
依存関係を調べる必要がありますが、これは簡単な作業。私はこれを見て、どれくらいの作業が必要か(または少なくともどれくらい勉強する必要があるか)を見て、製品仕様を変更して回避できるようにしました。あなたのプロジェクトにとって時間が不可欠な場合は、第三者を探すのが最も良いかもしれません。 – Dave