|
Dreamine.UI.Maui 1.0.1
Windows(WinUI)의 네이티브 `CheckBox`는 `WidthRequest`로 줄일 수 없는 거대한 최소 너비를 가져서 라벨과의 간격이 벌어지는 문제가 있어, 처음부터 직접 그려서 만들었습니다.
|


Public 멤버 함수 | |
| DreamineVirtualKeyboard () | |
| void | Attach (Entry entry) |
Private 타입 | |
| enum | KeyKind { Text , Command } |
Private 멤버 함수 | |
| void | BuildKeyboard () |
| void | AddRow (IReadOnlyList< KeySpec > specs) |
| Button | MakeKey (KeySpec spec) |
| void | InsertKey (string key) |
| void | InsertRaw (string text) |
| void | ReplaceTextTail (int replaceCount, string text) |
| string | GetTextBeforeCaret () |
| void | Backspace () |
| void | ToggleShift () |
| void | ToggleCapsLock () |
| void | ToggleLanguage () |
| void | MoveLeft () |
| void | MoveRight () |
| void | HideKeyboard () |
| void | OnEnter () |
| void | RefreshKeys () |
| string | GetKeyText (string key) |
| record | KeyButton (Button Button, string BaseText) |
Private 속성 | |
| readonly List< KeyButton > | _textKeys = [] |
| readonly HangulComposer | _composer = new() |
| Entry? | _target |
| bool | _shift |
| bool | _capsLock |
| bool | _korean |
| Button? | _shiftButton |
| Button? | _capsButton |
| Button? | _languageButton |
정적 Private 속성 | |
| static readonly Color | KeyBackground = Color.FromArgb("#F1685E") |
| static readonly Color | KeySelectedBackground = Color.FromArgb("#F59584") |
| static readonly Dictionary< string, string > | ShiftKeys |
| static readonly Dictionary< string, string > | KoreanKeys |
| static readonly Dictionary< string, string > | KoreanShiftKeys |
연결된 MAUI Entry를 직접 편집하는 5행 QWERTY 화면 키보드입니다.
운영체제 IME를 제어하지 않고 내부 한글 조합기를 사용하여 입력 값을 갱신합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 19 번째 라인에서 정의되었습니다.
|
private |
가상 키가 직접 텍스트를 입력하는지 명령을 실행하는지 지정합니다.
| 열거형 멤버 | |
|---|---|
| Text | 키가 변환된 텍스트를 입력함을 나타냅니다. |
| Command | 키가 연결된 동작을 실행함을 나타냅니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 868 번째 라인에서 정의되었습니다.
|
inline |
키보드 UI를 만들고 초기 키 레이블과 상태를 적용합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 131 번째 라인에서 정의되었습니다.
다음을 참조함 : BuildKeyboard(), RefreshKeys().

|
inlineprivate |
지정한 키 사양 목록을 하나의 키보드 행으로 만들어 호스트에 추가합니다.
| specs | 행에 배치할 키 사양 목록입니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 239 번째 라인에서 정의되었습니다.
다음을 참조함 : MakeKey().
다음에 의해서 참조됨 : BuildKeyboard().


|
inline |
가상 키보드 입력을 받을 Entry를 연결합니다.
| entry | 편집하고 포커스 시 키보드를 표시할 입력 항목입니다. |
| NullReferenceException | entry 가 null일 때 발생합니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 162 번째 라인에서 정의되었습니다.
다음을 참조함 : _target.
|
inlineprivate |
현재 선택 영역 또는 캐럿 앞의 문자 하나를 삭제합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 464 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : BuildKeyboard().

|
inlineprivate |
다섯 행의 텍스트 및 명령 키 사양을 구성하여 화면 키보드를 만듭니다.
DreamineVirtualKeyboard.xaml.cs 파일의 176 번째 라인에서 정의되었습니다.
다음을 참조함 : AddRow(), Backspace(), HideKeyboard(), InsertRaw(), MoveLeft(), MoveRight(), OnEnter(), ToggleCapsLock(), ToggleLanguage(), ToggleShift().
다음에 의해서 참조됨 : DreamineVirtualKeyboard().


|
inlineprivate |
현재 언어와 수정 키 상태에서 기본 키가 생성할 텍스트를 계산합니다.
| key | 변환할 기본 키 값입니다. |
| NullReferenceException | key 가 null일 때 발생합니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 651 번째 라인에서 정의되었습니다.
다음을 참조함 : _capsLock, _korean, _shift, KoreanKeys, KoreanShiftKeys, ShiftKeys.
다음에 의해서 참조됨 : InsertKey(), RefreshKeys().

|
inlineprivate |
연결된 입력 항목에서 캐럿 앞의 텍스트를 가져옵니다.
DreamineVirtualKeyboard.xaml.cs 파일의 446 번째 라인에서 정의되었습니다.
다음을 참조함 : _target.
다음에 의해서 참조됨 : InsertKey().

|
inlineprivate |
한글 조합을 초기화하고 화면 키보드를 숨깁니다.
DreamineVirtualKeyboard.xaml.cs 파일의 572 번째 라인에서 정의되었습니다.
다음을 참조함 : _composer.
다음에 의해서 참조됨 : BuildKeyboard().

|
inlineprivate |
현재 언어 및 수정 키 상태에 따라 텍스트 키를 입력합니다.
| key | 입력할 기본 키 값입니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 336 번째 라인에서 정의되었습니다.
다음을 참조함 : _composer, _korean, _shift, GetKeyText(), GetTextBeforeCaret(), InsertRaw(), RefreshKeys(), ReplaceTextTail().
다음에 의해서 참조됨 : MakeKey().


|
inlineprivate |
한글 조합을 초기화하고 원시 텍스트를 현재 선택 또는 캐럿 위치에 삽입합니다.
| text | 삽입할 원시 텍스트입니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 373 번째 라인에서 정의되었습니다.
다음을 참조함 : _composer, _target, ReplaceTextTail().
다음에 의해서 참조됨 : BuildKeyboard(), InsertKey().


|
sealedprivate |
화면 버튼과 변환 전 기본 키 텍스트의 연결을 나타냅니다.
| Button | 화면에 표시된 MAUI 버튼입니다. |
| BaseText | 언어 및 수정 키 변환 전 기본 텍스트입니다. |
다음에 의해서 참조됨 : MakeKey().

|
inlineprivate |
키 사양에 맞는 MAUI 버튼과 클릭 동작을 만듭니다.
| spec | 만들 키의 종류, 레이블, 너비 및 동작입니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 283 번째 라인에서 정의되었습니다.
다음을 참조함 : _capsButton, _languageButton, _shiftButton, _target, _textKeys, InsertKey(), KeyBackground, KeyButton(), Text.
다음에 의해서 참조됨 : AddRow().


|
inlineprivate |
연결된 입력 항목의 캐럿을 왼쪽으로 한 칸 이동하고 선택을 지웁니다.
DreamineVirtualKeyboard.xaml.cs 파일의 538 번째 라인에서 정의되었습니다.
다음을 참조함 : _target.
다음에 의해서 참조됨 : BuildKeyboard().

|
inlineprivate |
연결된 입력 항목의 캐럿을 오른쪽으로 한 칸 이동하고 선택을 지웁니다.
DreamineVirtualKeyboard.xaml.cs 파일의 555 번째 라인에서 정의되었습니다.
다음을 참조함 : _target.
다음에 의해서 참조됨 : BuildKeyboard().

|
inlineprivate |
한 줄 입력을 완료하고 포커스를 해제한 뒤 키보드를 숨깁니다.
DreamineVirtualKeyboard.xaml.cs 파일의 586 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : BuildKeyboard().

|
inlineprivate |
현재 Shift, Caps Lock 및 언어 상태에 맞게 모든 키 레이블과 선택 색상을 갱신합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 601 번째 라인에서 정의되었습니다.
다음을 참조함 : _capsButton, _capsLock, _korean, _languageButton, _shift, _shiftButton, _textKeys, GetKeyText(), KeyBackground, KeySelectedBackground.
다음에 의해서 참조됨 : DreamineVirtualKeyboard(), InsertKey(), ToggleCapsLock(), ToggleLanguage(), ToggleShift().


|
inlineprivate |
선택 영역을 교체하거나 캐럿 앞의 지정 문자 수를 새 텍스트로 교체합니다.
| replaceCount | 선택 영역이 없을 때 캐럿 앞에서 교체할 문자 수입니다. |
| text | 교체 위치에 삽입할 텍스트입니다. |
DreamineVirtualKeyboard.xaml.cs 파일의 406 번째 라인에서 정의되었습니다.
다음을 참조함 : _target.
다음에 의해서 참조됨 : InsertKey(), InsertRaw().

|
inlineprivate |
Caps Lock 상태를 전환하고 한글 조합과 키 레이블을 갱신합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 508 번째 라인에서 정의되었습니다.
다음을 참조함 : _capsLock, _composer, RefreshKeys().
다음에 의해서 참조됨 : BuildKeyboard().


|
inlineprivate |
영어와 한국어 입력 상태를 전환하고 한글 조합과 키 레이블을 갱신합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 523 번째 라인에서 정의되었습니다.
다음을 참조함 : _composer, _korean, RefreshKeys().
다음에 의해서 참조됨 : BuildKeyboard().


|
inlineprivate |
Shift 상태를 전환하고 키 레이블을 갱신합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 494 번째 라인에서 정의되었습니다.
다음을 참조함 : _shift, RefreshKeys().
다음에 의해서 참조됨 : BuildKeyboard().


|
private |
caps Button 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 112 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MakeKey(), RefreshKeys().
|
private |
caps Lock 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 85 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetKeyText(), RefreshKeys(), ToggleCapsLock().
|
private |
composer 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 57 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Backspace(), HideKeyboard(), InsertKey(), InsertRaw(), OnEnter(), ToggleCapsLock(), ToggleLanguage().
|
private |
korean 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 94 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetKeyText(), InsertKey(), RefreshKeys(), ToggleLanguage().
|
private |
language Button 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 121 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MakeKey(), RefreshKeys().
|
private |
shift 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 76 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetKeyText(), InsertKey(), RefreshKeys(), ToggleShift().
|
private |
shift Button 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 103 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MakeKey(), RefreshKeys().
|
private |
target 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 66 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : Attach(), Backspace(), GetTextBeforeCaret(), InsertRaw(), MakeKey(), MoveLeft(), MoveRight(), OnEnter(), ReplaceTextTail().
|
private |
text Keys 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 48 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MakeKey(), RefreshKeys().
|
staticprivate |
Key Background 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 29 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : MakeKey(), RefreshKeys().
|
staticprivate |
Key Selected Background 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 38 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : RefreshKeys().
|
staticprivate |
Korean Keys 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 690 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetKeyText().
|
staticprivate |
Korean Shift Keys 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 708 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetKeyText().
|
staticprivate |
Shift Keys 값을 보관합니다.
DreamineVirtualKeyboard.xaml.cs 파일의 673 번째 라인에서 정의되었습니다.
다음에 의해서 참조됨 : GetKeyText().