WPF RichTextBox 에서 대문자만 입력가능한 것처럼 보이게
아무리 찾아봐도 RichTextBox 에서 입력 마스크가 없다.
AvalonControlLibray에 MaskedTextBox가 있어서 사용해봤는데 답이 안되었다.
구글링하다가 비슷한 코드를 발견하고 수정했다. richTextBox2_TextChanged가 현재 핸들러이다.
AvalonControlLibray에 MaskedTextBox가 있어서 사용해봤는데 답이 안되었다.
구글링하다가 비슷한 코드를 발견하고 수정했다. richTextBox2_TextChanged가 현재 핸들러이다.
RichTextBox _rtbEdit = sender as RichTextBox;
_rtbEdit.TextChanged -= richTextBox2_TextChanged;
string sPrev = _rtbEdit.Selection.End. GetTextInRun(LogicalDirection. Backward);
int i;
for (i = sPrev.Length - 1; i > -1; i--)
{
if (Char.GetUnicodeCategory( sPrev[i]) != UnicodeCategory. NonSpacingMark) break;
}
if (i == -1) return;
// replace target character with new, keeping any following nonspacing char
StringBuilder sb = new StringBuilder();
sb.Append(sPrev[i]);
if (i + 1 < sPrev.Length) sb.Append(sPrev.Substring(i + 1));
string sNew = (sb.ToString()).ToUpper();
_rtbEdit.Selection.End. DeleteTextInRun(i - sPrev.Length);
_rtbEdit.Selection.End. InsertTextInRun(sNew);
_rtbEdit.CaretPosition = _rtbEdit.Selection.End. GetPositionAtOffset(sNew. Length);
_rtbEdit.TextChanged += richTextBox2_TextChanged;
댓글
댓글 쓰기