Dreamine.UI.Wpf.Equipment 1.0.1
Dreamine.UI.Wpf.Equipment 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI 클래스 참조

더 자세히 ...

Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI에 대한 상속 다이어그램 :
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI에 대한 협력 다이어그램:

Public 멤버 함수

 DreamineVirtualKeyboardUI ()
void FocusVkbTextBox ()
void FocusVkbPasswordBox ()
void UpdateNumericLabelVisibility ()
void RemoveNumericHandler ()
void AddOrRemoveNumericHandler ()
void UpdateSourceBinding ()
void ClampNumericValue (bool updateSourceBinding=false)
bool IsOuterRange ()
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard(으)로부터 상속된 Public 멤버 함수
 DreamineVirtualKeyboard ()
void Dispose ()
void ReleasePressedKeys ()

정적 Public 속성

static readonly DependencyProperty ValueProperty
static readonly DependencyProperty MinimumProperty
static readonly DependencyProperty MaximumProperty
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard(으)로부터 상속된 정적 Public 속성
static readonly RoutedEvent VirtualKeyDownEvent
static readonly DependencyProperty LayoutProperty
static readonly DependencyProperty IsPasswordLayoutProperty = IsPasswordLayoutPropertyKey.DependencyProperty

속성

bool InternalUpdate = false [get, set]
string Value [get, set]
decimal Minimum [get, set]
decimal Maximum [get, set]
string DecimalFormat = string.Empty [get, set]
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard(으)로부터 상속된 속성
EventHandler< LanguageCode >? OnKeyboardLanguageChanged [get, set]
bool InImeGuard [get]
bool InLangGuard [get]
bool HasPendingKoreanInputMode [get]
bool InShiftGuard [get]
VkLayout Layout [get, set]
bool IsPasswordLayout [get, private set]
LanguageCode CurrentLang [get, private set]
bool IsPressedShift [get, private set]
bool IsPressedCapsLock [get]
bool IsPressedCtrl [get, set]
bool ImeMode [get, private set]

Private 멤버 함수

void RegisterVkbInputEvents ()
void VkbInput_Loaded (object sender, RoutedEventArgs e)
void VkbInput_Unloaded (object sender, RoutedEventArgs e)
void VkbInput_IsVisibleChanged (object sender, DependencyPropertyChangedEventArgs e)
void OnKeyboardLanguageChangedHandler (object? sender, LanguageCode e)
void SetInputMethod ()
void VkbTextBox_TextChanged (object sender, TextChangedEventArgs e)
void NormalizeNumericInput (object? sender, EventArgs eventArgs)
void FormatDecimalValue (decimal decimalVal)
void VkbTextBox_PreviewTextInput (object sender, TextCompositionEventArgs e)
void VkbTextBox_OnTextBoxPasting (object sender, DataObjectPastingEventArgs e)
void SetText (Action action)
bool IsValidNumericInput (string input)

Private 속성

readonly DispatcherTimer _debounceTimer

추가로 상속된 멤버들

Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard(으)로부터 상속된 Protected 멤버 함수
void UpdateKeys ()
void UpdateLangKey ()
bool UpdateInputModeKey (bool readSystemIme=true)
void RefreshKeyboardLayout (string lang="")
virtual void Dispose (bool disposing)
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard(으)로부터 상속된 Protected 속성
Panel? _layoutRoot
IEnumerable< Key >? _keys
Button? _langBtn
Button? _inputModeBtn
Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard(으)로부터 상속된 이벤트
RoutedEventHandler VirtualKeyDown [add, remove]

상세한 설명

텍스트·정수·소수 입력 UI와 범위 제한, 바인딩, 포커스 및 입력기 제어를 결합한 가상 키보드입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 21 번째 라인에서 정의되었습니다.

생성자 & 소멸자 문서화

◆ DreamineVirtualKeyboardUI()

Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.DreamineVirtualKeyboardUI ( )
inline

XAML 구성 요소, 디바운스 타이머, 입력 이벤트 및 언어별 입력기 상태를 초기화합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 139 번째 라인에서 정의되었습니다.

140 {
141 InitializeComponent();
142
143 _debounceTimer = new DispatcherTimer(DispatcherPriority.SystemIdle, VkbTextBox.Dispatcher)
144 {
145 Interval = TimeSpan.FromSeconds(1),
146 };
147
148 OnKeyboardLanguageChanged += OnKeyboardLanguageChangedHandler;
149 RegisterVkbInputEvents();
150 SetInputMethod();
151 }

다음을 참조함 : _debounceTimer, Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.OnKeyboardLanguageChanged, OnKeyboardLanguageChangedHandler(), RegisterVkbInputEvents(), SetInputMethod().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

멤버 함수 문서화

◆ AddOrRemoveNumericHandler()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.AddOrRemoveNumericHandler ( )
inline

기존 숫자 처리기를 제거하고 비텍스트 레이아웃이면 다시 등록합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 439 번째 라인에서 정의되었습니다.

440 {
441 RemoveNumericHandler();
442
443 if (Layout != VkLayout.Text)
444 {
445 VkbTextBox.PreviewTextInput += VkbTextBox_PreviewTextInput;
446 VkbTextBox.TextChanged += VkbTextBox_TextChanged;
447 DataObject.AddPastingHandler(VkbTextBox, VkbTextBox_OnTextBoxPasting);
448 }
449 }

다음을 참조함 : Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout, RemoveNumericHandler(), VkbTextBox_OnTextBoxPasting(), VkbTextBox_PreviewTextInput(), VkbTextBox_TextChanged().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ ClampNumericValue()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.ClampNumericValue ( bool updateSourceBinding = false)
inline

현재 숫자 텍스트를 해석하여 최소·최대 범위로 제한하고 선택적으로 바인딩 소스를 갱신합니다.

매개변수
updateSourceBinding보정 후 바인딩 소스를 즉시 갱신하려면 true입니다.
예외
ArgumentExceptionMinimum이 Maximum보다 클 때 발생합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 799 번째 라인에서 정의되었습니다.

800 {
801 if (Layout == VkLayout.Numeric)
802 {
803 decimal.TryParse(VkbTextBox.Text, NumberStyles.Integer, CultureInfo.InvariantCulture, out decimal intval);
804 var clamped = Math.Clamp(intval, Minimum, Maximum);
805 SetText(() =>
806 {
807 VkbTextBox.Text = clamped.ToString(CultureInfo.InvariantCulture);
808 VkbTextBox.CaretIndex = VkbTextBox.Text.Length;
809 });
810 }
811 else if (Layout == VkLayout.Decimal)
812 {
813 decimal.TryParse(VkbTextBox.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out decimal decval);
814 decimal clamped = Math.Clamp(decval, Minimum, Maximum);
815 if (!VkbTextBox.Text.EndsWith(CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator))
816 {
817 SetText(() =>
818 {
819 FormatDecimalValue(clamped);
820 });
821 }
822 }
823
824 if (updateSourceBinding)
825 {
826 VkbTextBox.GetBindingExpression(TextBox.TextProperty)?.UpdateSource();
827 }
828 }

다음을 참조함 : FormatDecimalValue(), Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout, Maximum, Minimum, SetText().

다음에 의해서 참조됨 : VkbInput_IsVisibleChanged(), VkbInput_Loaded().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FocusVkbPasswordBox()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.FocusVkbPasswordBox ( )
inline

암호 입력 상자가 표시되면 유휴 시점에 키보드 포커스를 설정합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 319 번째 라인에서 정의되었습니다.

320 {
321 if (VkbPasswordBox.IsLoaded && VkbPasswordBox.IsVisible)
322 {
323 Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, () =>
324 {
325 VkbPasswordBox.Focus();
326 Keyboard.Focus(VkbPasswordBox);
327 });
328 }
329 }

다음에 의해서 참조됨 : VkbInput_IsVisibleChanged(), VkbInput_Loaded().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FocusVkbTextBox()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.FocusVkbTextBox ( )
inline

텍스트 입력 상자가 표시되면 유휴 시점에 포커스하고 캐럿을 끝으로 이동합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 298 번째 라인에서 정의되었습니다.

299 {
300 if (VkbTextBox.IsLoaded && VkbTextBox.IsVisible)
301 {
302 Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, () =>
303 {
304 VkbTextBox.Focus();
305 Keyboard.Focus(VkbTextBox);
306 VkbTextBox.CaretIndex = Math.Max(0, VkbTextBox.Text.Length);
307 });
308 }
309 }

다음에 의해서 참조됨 : VkbInput_IsVisibleChanged(), VkbInput_Loaded().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ FormatDecimalValue()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.FormatDecimalValue ( decimal decimalVal)
inlineprivate

지정한 소수 값을 구성된 형식 또는 고정 문화권 기본 형식으로 표시합니다.

매개변수
decimalVal표시할 소수 값입니다.
예외
FormatExceptionDecimalFormat이 유효하지 않을 때 발생할 수 있습니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 592 번째 라인에서 정의되었습니다.

593 {
594 SetText(() =>
595 {
596 VkbTextBox.Text = string.IsNullOrEmpty(DecimalFormat) ? decimalVal.ToString(CultureInfo.InvariantCulture) : decimalVal.ToString(DecimalFormat, CultureInfo.InvariantCulture);
597 VkbTextBox.CaretIndex = VkbTextBox.Text.Length;
598 });
599 }

다음을 참조함 : DecimalFormat, SetText().

다음에 의해서 참조됨 : ClampNumericValue(), NormalizeNumericInput().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsOuterRange()

bool Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.IsOuterRange ( )
inline

현재 숫자 텍스트가 해석 불가능하거나 구성된 범위를 벗어났는지 확인합니다.

반환값
숫자 또는 소수 레이아웃에서 입력이 잘못되었거나 범위를 벗어나면 true입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 846 번째 라인에서 정의되었습니다.

847 {
848 if (Layout == VkLayout.Numeric)
849 {
850 var isSuccess = decimal.TryParse(VkbTextBox.Text, NumberStyles.Integer, CultureInfo.InvariantCulture, out decimal intval);
851 if (!isSuccess || intval < Minimum || intval > Maximum)
852 {
853 return true;
854 }
855 }
856 else if (Layout == VkLayout.Decimal)
857 {
858 var isSuccess = decimal.TryParse(VkbTextBox.Text, NumberStyles.Number, CultureInfo.InvariantCulture, out decimal decval);
859 if (!isSuccess || decval < Minimum || decval > Maximum)
860 {
861 return true;
862 }
863 }
864
865 return false;
866 }

다음을 참조함 : Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout, Maximum.

다음에 의해서 참조됨 : VkbInput_IsVisibleChanged(), VkbInput_Loaded().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ IsValidNumericInput()

bool Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.IsValidNumericInput ( string input)
inlineprivate

문자열이 현재 정수 또는 소수 레이아웃에서 부분 입력으로 유효한지 확인합니다.

매개변수
input검사할 입력 문자열입니다.
반환값
현재 숫자 패턴과 일치하면 true입니다.
예외
ArgumentNullExceptioninputnull일 때 정규식 검사에서 발생합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 763 번째 라인에서 정의되었습니다.

764 {
765 if (Layout == VkLayout.Numeric)
766 return Regex.IsMatch(input, @"^-?[0-9]*$");
767 else
768 {
769 var sep = CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator;
770 string esc = Regex.Escape(sep);
771 return Regex.IsMatch(input, @"^-?[0-9]*(" + esc + @"[0-9]*)?$");
772 }
773 }

다음을 참조함 : Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout.

다음에 의해서 참조됨 : VkbTextBox_OnTextBoxPasting(), VkbTextBox_PreviewTextInput().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ NormalizeNumericInput()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.NormalizeNumericInput ( object? sender,
EventArgs eventArgs )
inlineprivate

지연된 숫자 입력을 해석하고 범위 제한 및 소수 형식을 적용합니다.

매개변수
sender타이머 이벤트 발신자입니다.
eventArgs타이머 이벤트 데이터입니다.
예외
ArgumentExceptionMinimum이 Maximum보다 클 때 Math.Clamp(decimal, decimal, decimal)에서 발생합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 535 번째 라인에서 정의되었습니다.

536 {
537 var txt = VkbTextBox.Text;
538 if (Layout == VkLayout.Numeric)
539 {
540 if (decimal.TryParse(txt, NumberStyles.Integer, CultureInfo.InvariantCulture, out decimal intval))
541 {
542 var clamped = Math.Clamp(intval, Minimum, Maximum);
543 SetText(() =>
544 {
545 VkbTextBox.Text = clamped.ToString(CultureInfo.InvariantCulture);
546 VkbTextBox.CaretIndex = VkbTextBox.Text.Length;
547 });
548 }
549 }
550 else if (Layout == VkLayout.Decimal)
551 {
552 if (decimal.TryParse(txt, NumberStyles.Number, CultureInfo.InvariantCulture, out decimal decval))
553 {
554 decimal clamped = Math.Clamp(decval, Minimum, Maximum);
555 if (!txt.EndsWith(CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator))
556 {
557 SetText(() =>
558 {
559 FormatDecimalValue(clamped);
560 });
561 }
562 }
563 }
564
565 _debounceTimer.Stop();
566 }

다음을 참조함 : _debounceTimer, FormatDecimalValue(), Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout, Maximum, Minimum, SetText().

다음에 의해서 참조됨 : VkbInput_IsVisibleChanged(), VkbInput_Unloaded().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnKeyboardLanguageChangedHandler()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.OnKeyboardLanguageChangedHandler ( object? sender,
LanguageCode e )
inlineprivate

키보드 언어 변경 시 WPF 입력기 설정을 다시 적용합니다.

매개변수
sender언어 변경 이벤트 발신자입니다.
e새 언어 코드입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 355 번째 라인에서 정의되었습니다.

356 {
357 SetInputMethod();
358 }

다음을 참조함 : SetInputMethod().

다음에 의해서 참조됨 : DreamineVirtualKeyboardUI().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RegisterVkbInputEvents()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.RegisterVkbInputEvents ( )
inlineprivate

텍스트 및 암호 입력 상자의 로드·언로드·표시 상태 이벤트를 등록합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 161 번째 라인에서 정의되었습니다.

162 {
163 VkbTextBox.Loaded += VkbInput_Loaded;
164 VkbTextBox.Unloaded += VkbInput_Unloaded;
165 VkbTextBox.IsVisibleChanged += VkbInput_IsVisibleChanged;
166 VkbPasswordBox.Loaded += VkbInput_Loaded;
167 VkbPasswordBox.Unloaded += VkbInput_Unloaded;
168 VkbPasswordBox.IsVisibleChanged += VkbInput_IsVisibleChanged;
169 }

다음을 참조함 : VkbInput_IsVisibleChanged(), VkbInput_Loaded(), VkbInput_Unloaded().

다음에 의해서 참조됨 : DreamineVirtualKeyboardUI().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ RemoveNumericHandler()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.RemoveNumericHandler ( )
inline

텍스트 입력 상자에서 숫자 입력 검증 처리기를 제거합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 424 번째 라인에서 정의되었습니다.

425 {
426 VkbTextBox.PreviewTextInput -= VkbTextBox_PreviewTextInput;
427 VkbTextBox.TextChanged -= VkbTextBox_TextChanged;
428 DataObject.RemovePastingHandler(VkbTextBox, VkbTextBox_OnTextBoxPasting);
429 }

다음을 참조함 : VkbTextBox_OnTextBoxPasting(), VkbTextBox_PreviewTextInput(), VkbTextBox_TextChanged().

다음에 의해서 참조됨 : AddOrRemoveNumericHandler().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetInputMethod()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.SetInputMethod ( )
inlineprivate

현재 언어에 따라 텍스트 입력 상자의 WPF 입력기를 활성화하거나 중지합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 368 번째 라인에서 정의되었습니다.

369 {
370 switch (CurrentLang)
371 {
372 case LanguageCode.en_US:
373 InputMethod.SetIsInputMethodEnabled(VkbTextBox, false);
374 InputMethod.SetIsInputMethodSuspended(VkbTextBox, true);
375 break;
376 case LanguageCode.vi_VN:
377 InputMethod.SetIsInputMethodEnabled(VkbTextBox, false);
378 InputMethod.SetIsInputMethodSuspended(VkbTextBox, true);
379 break;
380 case LanguageCode.ko_KR:
381 case LanguageCode.zh_CN:
382 InputMethod.SetIsInputMethodEnabled(VkbTextBox, true);
383 InputMethod.SetIsInputMethodSuspended(VkbTextBox, false);
384 break;
385 }
386 }

다음을 참조함 : Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.CurrentLang.

다음에 의해서 참조됨 : DreamineVirtualKeyboardUI(), OnKeyboardLanguageChangedHandler().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ SetText()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.SetText ( Action action)
inlineprivate

내부 갱신 상태를 설정하고 지정한 텍스트 변경 동작을 실행합니다.

매개변수
action실행할 텍스트 변경 동작입니다.
예외
NullReferenceExceptionactionnull일 때 발생합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 725 번째 라인에서 정의되었습니다.

726 {
727 InternalUpdate = true;
728 action.Invoke();
729 }

다음을 참조함 : InternalUpdate.

다음에 의해서 참조됨 : ClampNumericValue(), FormatDecimalValue(), NormalizeNumericInput().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ UpdateNumericLabelVisibility()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.UpdateNumericLabelVisibility ( )
inline

현재 레이아웃과 제한값에 따라 최소·최대 안내 레이블 표시 상태를 갱신합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 396 번째 라인에서 정의되었습니다.

397 {
398 var showMinMax = Layout != VkLayout.Text && (Minimum != decimal.MinValue || Maximum != decimal.MaxValue);
399 if (Layout == VkLayout.Numeric)
400 {
401 MinTbl.Visibility = showMinMax && Minimum != int.MinValue ? Visibility.Visible : Visibility.Collapsed;
402 MaxTbl.Visibility = showMinMax && Maximum != int.MaxValue ? Visibility.Visible : Visibility.Collapsed;
403 }
404 else if (Layout == VkLayout.Decimal)
405 {
406 MinTbl.Visibility = showMinMax && Minimum != decimal.MinValue ? Visibility.Visible : Visibility.Collapsed;
407 MaxTbl.Visibility = showMinMax && Maximum != decimal.MaxValue ? Visibility.Visible : Visibility.Collapsed;
408 }
409 else
410 {
411 MinTbl.Visibility = Visibility.Collapsed;
412 MaxTbl.Visibility = Visibility.Collapsed;
413 }
414 }

다음을 참조함 : Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout, Maximum, Minimum.

◆ UpdateSourceBinding()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.UpdateSourceBinding ( )
inline

텍스트 바인딩의 현재 값을 소스에 즉시 반영합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 459 번째 라인에서 정의되었습니다.

460 {
461 VkbTextBox.GetBindingExpression(TextBox.TextProperty)?.UpdateSource();
462 }

◆ VkbInput_IsVisibleChanged()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.VkbInput_IsVisibleChanged ( object sender,
DependencyPropertyChangedEventArgs e )
inlineprivate

입력 표시 상태에 따라 포커스, 숫자 보정 및 디바운스 Tick 구독을 갱신합니다.

매개변수
sender표시 상태가 변경된 입력 요소입니다.
e새 표시 상태를 포함하는 변경 데이터입니다.
예외
InvalidCastException새 값이 bool이 아닐 때 발생할 수 있습니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 269 번째 라인에서 정의되었습니다.

270 {
271 FocusVkbTextBox();
272 FocusVkbPasswordBox();
273
274 if (Layout != VkLayout.Text && (string.IsNullOrEmpty(VkbTextBox.Text) || IsOuterRange()))
275 {
276 ClampNumericValue(true);
277 }
278
279 if ((bool)e.NewValue)
280 {
281 _debounceTimer.Tick -= NormalizeNumericInput;
282 _debounceTimer.Tick += NormalizeNumericInput;
283 }
284 else
285 {
286 _debounceTimer.Tick -= NormalizeNumericInput;
287 }
288 }

다음을 참조함 : ClampNumericValue(), FocusVkbPasswordBox(), FocusVkbTextBox(), IsOuterRange(), Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout, NormalizeNumericInput().

다음에 의해서 참조됨 : RegisterVkbInputEvents().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ VkbInput_Loaded()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.VkbInput_Loaded ( object sender,
RoutedEventArgs e )
inlineprivate

입력 상자가 로드되면 포커스를 설정하고 숫자 입력을 필요 시 범위 안으로 보정합니다.

매개변수
sender로드된 입력 요소입니다.
e로드 이벤트 데이터입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 195 번째 라인에서 정의되었습니다.

196 {
197 FocusVkbTextBox();
198 FocusVkbPasswordBox();
199 InternalUpdate = true;
200 if (Layout != VkLayout.Text && (string.IsNullOrEmpty(VkbTextBox.Text) || IsOuterRange()))
201 {
202 ClampNumericValue(true);
203 }
204 }

다음을 참조함 : ClampNumericValue(), FocusVkbPasswordBox(), FocusVkbTextBox(), InternalUpdate, IsOuterRange(), Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout.

다음에 의해서 참조됨 : RegisterVkbInputEvents().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ VkbInput_Unloaded()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.VkbInput_Unloaded ( object sender,
RoutedEventArgs e )
inlineprivate

입력 상자가 언로드되면 숫자 정규화 타이머와 이벤트를 중지합니다.

매개변수
sender언로드된 입력 요소입니다.
e언로드 이벤트 데이터입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 230 번째 라인에서 정의되었습니다.

231 {
232 InternalUpdate = true;
233 _debounceTimer.Stop();
234 _debounceTimer.Tick -= NormalizeNumericInput;
235 }

다음을 참조함 : _debounceTimer, InternalUpdate, NormalizeNumericInput().

다음에 의해서 참조됨 : RegisterVkbInputEvents().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ VkbTextBox_OnTextBoxPasting()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.VkbTextBox_OnTextBoxPasting ( object sender,
DataObjectPastingEventArgs e )
inlineprivate

붙여넣을 텍스트가 현재 숫자 형식에 맞지 않으면 붙여넣기 명령을 취소합니다.

매개변수
sender붙여넣기 대상입니다.
e붙여넣기 데이터와 취소 동작을 제공하는 이벤트 데이터입니다.
예외
NullReferenceExceptione 또는 해당 데이터 객체가 null일 때 발생합니다.
InvalidCastException텍스트 데이터가 문자열로 변환되지 않을 때 발생합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 689 번째 라인에서 정의되었습니다.

690 {
691 if (e.DataObject.GetDataPresent(DataFormats.Text))
692 {
693 var text = (string)e.DataObject.GetData(DataFormats.Text);
694 if (!IsValidNumericInput(text))
695 e.CancelCommand();
696 }
697 else
698 e.CancelCommand();
699 }

다음을 참조함 : IsValidNumericInput().

다음에 의해서 참조됨 : AddOrRemoveNumericHandler(), RemoveNumericHandler().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ VkbTextBox_PreviewTextInput()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.VkbTextBox_PreviewTextInput ( object sender,
TextCompositionEventArgs e )
inlineprivate

입력 예정 문자열이 현재 숫자 레이아웃 형식에 맞는지 검사하여 입력을 허용하거나 차단합니다.

매개변수
sender텍스트 입력 요소입니다.
e입력 문자와 처리 상태를 포함하는 데이터입니다.
예외
NullReferenceExceptionenull일 때 발생합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 633 번째 라인에서 정의되었습니다.

634 {
635 if (Layout == VkLayout.Decimal)
636 {
637 var sep = CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator;
638
639 if (e.Text == sep && !VkbTextBox.Text.Contains(sep))
640 {
641 e.Handled = false;
642 return;
643 }
644 }
645 var proposedText = VkbTextBox.Text.Insert(VkbTextBox.CaretIndex, e.Text);
646 e.Handled = !IsValidNumericInput(proposedText);
647 }

다음을 참조함 : IsValidNumericInput(), Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboard.Layout.

다음에 의해서 참조됨 : AddOrRemoveNumericHandler(), RemoveNumericHandler().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:
이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ VkbTextBox_TextChanged()

void Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.VkbTextBox_TextChanged ( object sender,
TextChangedEventArgs e )
inlineprivate

외부가 아닌 텍스트 변경이면 숫자 정규화 타이머를 다시 시작합니다.

매개변수
sender변경된 텍스트 상자입니다.
e텍스트 변경 데이터입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 488 번째 라인에서 정의되었습니다.

489 {
490 _debounceTimer.Stop();
491
492 if (!InternalUpdate)
493 {
494 _debounceTimer.Start();
495 }
496
497 if (InternalUpdate)
498 {
499 InternalUpdate = false;
500 }
501 }

다음을 참조함 : _debounceTimer, InternalUpdate.

다음에 의해서 참조됨 : AddOrRemoveNumericHandler(), RemoveNumericHandler().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

멤버 데이터 문서화

◆ _debounceTimer

readonly DispatcherTimer Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI._debounceTimer
private

숫자 입력 정규화를 지연하는 디바운스 타이머입니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 31 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : DreamineVirtualKeyboardUI(), NormalizeNumericInput(), VkbInput_Unloaded(), VkbTextBox_TextChanged().

◆ MaximumProperty

readonly DependencyProperty Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.MaximumProperty
static
초기값:

Maximum 종속성 속성을 식별합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 127 번째 라인에서 정의되었습니다.

◆ MinimumProperty

readonly DependencyProperty Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.MinimumProperty
static
초기값:
= DependencyProperty.Register(
nameof(Minimum), typeof(decimal), typeof(DreamineVirtualKeyboardUI),
new PropertyMetadata(decimal.MinValue))

Minimum 종속성 속성을 식별합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 115 번째 라인에서 정의되었습니다.

◆ ValueProperty

readonly DependencyProperty Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.ValueProperty
static
초기값:
= DependencyProperty.Register(
nameof(Value), typeof(string), typeof(DreamineVirtualKeyboardUI),
new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault))

양방향 바인딩되는 Value 종속성 속성을 식별합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 103 번째 라인에서 정의되었습니다.

다음에 의해서 참조됨 : Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardWindow.DreamineVirtualKeyboardWindow_IsVisibleChanged(), Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardWindow.SetBinding().

속성 문서화

◆ DecimalFormat

string Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.DecimalFormat = string.Empty
getset

소수 값을 표시할 선택적 .NET 숫자 형식 문자열을 가져오거나 설정합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 93 번째 라인에서 정의되었습니다.

93{ get; set; } = string.Empty;

다음에 의해서 참조됨 : FormatDecimalValue().

◆ InternalUpdate

bool Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.InternalUpdate = false
getset

텍스트 변경이 내부 갱신에서 시작되었는지 가져오거나 설정합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 41 번째 라인에서 정의되었습니다.

41{ get; set; } = false;

다음에 의해서 참조됨 : SetText(), VkbInput_Loaded(), VkbInput_Unloaded(), VkbTextBox_TextChanged().

◆ Maximum

decimal Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.Maximum
getset

허용할 최대 숫자 값을 가져오거나 설정합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 79 번째 라인에서 정의되었습니다.

80 {
81 get => (decimal)GetValue(MaximumProperty);
82 set => SetValue(MaximumProperty, value);
83 }

다음에 의해서 참조됨 : ClampNumericValue(), IsOuterRange(), NormalizeNumericInput(), UpdateNumericLabelVisibility().

◆ Minimum

decimal Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.Minimum
getset

허용할 최소 숫자 값을 가져오거나 설정합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 65 번째 라인에서 정의되었습니다.

66 {
67 get => (decimal)GetValue(MinimumProperty);
68 set => SetValue(MinimumProperty, value);
69 }

다음에 의해서 참조됨 : ClampNumericValue(), NormalizeNumericInput(), UpdateNumericLabelVisibility().

◆ Value

string Dreamine.UI.Wpf.Equipment.DreamineVirtualKeyboard.DreamineVirtualKeyboardUI.Value
getset

키보드가 편집하는 문자열 값을 가져오거나 설정합니다.

DreamineVirtualKeyboardUI.xaml.cs 파일의 51 번째 라인에서 정의되었습니다.

52 {
53 get => (string)GetValue(ValueProperty);
54 set => SetValue(ValueProperty, value);
55 }

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: