티스토리 뷰
728x90
반응형
한글 텍스트를 입력할때 IME때문에 완성되지 않은 텍스트는 무시하거든 그래서 Focus를 잃으면 SpeechText를 마지막입력한 문자까지 텍스트가 완성되도록 하고 싶은거야 이때는?
네, 아주 올바른 방법이자 WPF에서 한글 IME(입력기) 문제를 해결하는 가장 표준적인 접근 방식입니다.
사용자께서 겪고 계신 문제는 TextBox의 Text 속성이 바인딩된 SpeechText로 업데이트되는 시점 때문에 발생합니다. 이 문제를 해결하는 핵심은 XAML 바인딩의 UpdateSourceTrigger 속성을 변경하는 것입니다.
## 문제의 원인과 해결책
- 문제: UpdateSourceTrigger=PropertyChanged로 설정하면, 키를 누를 때마다 Text 속성이 변경되기를 기대하지만, 한글 IME는 '한'처럼 글자가 완성되기 전까지는 Text 속성을 업데이트하지 않습니다. 이 때문에 조합 중인 글자가 ViewModel로 전달되지 않는 것입니다.
- 해결책: UpdateSourceTrigger=LostFocus로 변경하는 것입니다. 이렇게 하면 TextBox가 포커스를 잃는 순간(예: 다른 버튼을 클릭)에 WPF가 내부적으로 IME의 조합 중인 글자를 자동으로 완성시킨 후, 그 최종 결과물로 SpeechText 속성을 업데이트합니다.
: UpdateSourceTrigger=PropertyChanged를 LostFocus로 변경합니다.
<TextBox Grid.Row="0" Margin="0,5,0,10"
FontFamily="Dotum" FontSize="14" Foreground="DeepSkyBlue"
FontWeight="Bold" Padding="10"
Text="{Binding SpeechText, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
TextWrapping="Wrap" VerticalScrollBarVisibility="Auto">
</TextBox>
반응형
'WPF' 카테고리의 다른 글
No data is available for encoding 51949 (0) | 2022.10.30 |
---|---|
SqlDataReader to DataTable (0) | 2022.10.14 |
MSSQL HashBytes Sqlparameter Error (246) | 2022.06.30 |
WPF SerialPort.DataReceived 이벤트 Thread Exception (0) | 2022.06.27 |
Radio Button/ CheckBox Null Check (0) | 2022.06.20 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- WPF Textbox
- Label Text LineBreak in Xaml
- Xamarin.Ios Firebase Phone SMS OTP Send
- GetCellContent CheckBox Value
- Microcharts
- 연산자 뒤에 피연산자가 없습니다.
- 암호 마스터키
- WPF Scrollviewer in ScrollViwer
- Embeded 한글Font적용
- WPF Datagrid Cell Value Change
- Xamarin.Forms
- Xamarin.Ios Firebase Phone Auth
- Windows IIS FTP 디렉토리 목록 오류
- SkiaSharp
- Xamarin.Ios Firebase Phone User Add
- ClickOnce 인증서 인증기간 변경
- C# LINQ Left join
- Entry '' has empty native path
- WPF Excel Export Microsoft.Office.Interop 성능향상(열 기준으로 복사)
- FileStream Add Byte
- ssl_client_socket_impl.cc
- Linux SSH Multi Computer Join
- Xamarin Firebase Phone Auth
- Xamarin Firebase Phone User Add
- Xamarin SMS OTP Send
- 서버 수준의 URN 필터
- c# Encrypt / Decrypt
- Xamarin reCAPTCHA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함