전체 글 34

[WPF] Delay 이후 UI 작업을 진행할 때

1. ItemsSource 와 CollectionViewSource 를 업데이트 하고2. Filter  를 적용하여 UI Update  를 한 함수에서 실행하게끔 의도를 하였는데 Binding Error 가 발생하는 것을 목격했다.에러 내용System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.ItemsControl', AncestorLevel='1''. BindingExpression:Path=VerticalContentAlignment; DataItem=null; target element is 'L..

WPF 2024.09.11

[C#] 파일 읽고 쓰는 중 한글, 특수 문자가 깨지면 UTF8 을 사용하자

// 파일 쓰기using (var fileStream = new FileStream(PATH, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite))using (var writer = new StreamWriter(fileStream, Encoding.UTF8))// 파일 읽기using (var fileStream = new FileStream(INPUTLIST_PATH, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))using (var reader = new StreamReader(fileStream, Encoding.UTF8)) StreamWriter / StreamReader 의 매개변수에 Encodi..

WPF 2024.08.28

[WPF] Loading 창 Nuget Package 추천

프로그램을 제작하다보면 Loading 창이 필요하게 된다. WPF 에서는 여러 컨트롤들을 내 입맛대로 다양하고 원하는 데로 만들 수 있는데, 애니메이션이 들어가는 것들은 조금 부담이 되긴한다. AI : Chat GPT 에게 도움을 받을 수도 있지만, 사람이 제작한 Nuget Package 에게도 도움을 받을 수 있다. (사람이 제작 했겠죠..?) Loading  = Busy Indcator 라고 봐도 무방한것 같습니다.제가 추천하는 Nuget Package 의 Git 주소를 공유 드립니다.https://github.com/Moh3nGolshani/BusyIndicator GitHub - Moh3nGolshani/BusyIndicator: Busy Indicator for WPFBusy Indicator ..

WPF 2024.08.07

[WPF] Geometry 사용법

프로그램에 이미지를 추가할 때 Image - Source 를 사용하여 추가하는 방법도 있지만 Geomtry 라는 좌표계를 이용하여 만든 이미지를 추가하는 방법도 있다. Geomtry 의 장점은...1. 원하는 이미지를 그릴 수 있음.2. 크기가 국한되어있지 않으며 해상도가 깨지는 일이 없음3. 색상을 원하는 데로 변경 가능4. 무료 이미지 배포 사이트 존재 정도인 것 같다. 위 4번에 해당하는 추천 사이트를 공유 한다.https://pictogrammers.com/library/mdi/ Material Design Icons - Icon Library - PictogrammersThe original. Following Google's Material Design guidelines for system ..

카테고리 없음 2024.08.06

[WPF] 다른 프로그램 클릭 시 Popup 창이 클릭 되지 않는 문제

WPF 에서 Popup 을 StayOpen=True 로 띄운 후다른 프로그램을 사용하다가 (외부 프로그램)다시 Popup 창을 클릭하였을때 Poup 안의 TextBox 라던지 다른 컨트롤들이 선택되지 않는 문제가 발생한다. 윈도우 상 MainWindow 가 활성화되지 않고 다른 프로그램이 활성화 되어 있기 때문인데해결 방법은 Popup 을 클릭했을때 우리 프로그램을 활성화 하면 된다.  [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool SetForegroundWindow(IntPtr hWnd); private void popup_PreviewMou..

카테고리 없음 2024.08.05

[WPF] Popup 에서 TextBox 사용시 한글 분리 현상

Popup 에 TextBox 를 넣고 영어를 입력하면 아무 문제가 없는데 한글을 입력하면 자음, 모음 분리현상이 나타난다. 나는 '집에가고싶어' 를 입력했지만'집ㅇㅔㄱㅏㄱㅗㅅㅣㅍ어' 가 입력된다ㅋㅋㅋ 이 문제를 해결하고자 검색했을 경우 여러가지 해결 제시가 나오지만 모두 해결되지 않았다.1. TextBox Language 를 "ko-KR" 로 설정2. IME 설정 코드를 추가하기3. Focus 를 강제로 주기 // 강제 포커스 myPopup.IsOpen = true; myPopup.Child.Focus(); // Ensure that the Popup's child (TextBox) receives focus Keyboard.Focus(myTextBox);// IME 설정 #1 InputMetho..

WPF 2024.08.05

[WPF] TextBox 값이 변할 때 마다 어떤 작업 실행 시 느려진다면

TextBox 에 Binding 한 string 값이 변할 때 마다 CollectionView Filter 를 주는 프로세스를 만들어 두었었다.그런데 TextBox 의 값이 빠르게 변하면 Filter 작업을 처리하면서 느려지는 현상이 발생했다.그래서 다음과 같은 작업을 처리했다. "Debounce 기능" - 일정 시간동안 연속해서 작업이 들어온 경우 모든 작업을 처리하지 않고 마지막 작업만 처리하도록 하는 기능  private string searchText = string.Empty; public string SearchText { get { return searchText; } set { searchText = value; OnPropertyChang..

WPF 2024.07.12

[WPF] Behavior 를 이용하여 xaml 에서 값 변경하기

평소 Behavior 를 이용해서 ViewModel 에서 MouseDown 혹은 Loaded 이벤트들을 받아서 처리하였는데이외에도 여러가지를 지원하는 것 같다. 최근 알아낸것은.. Button 을 클릭하면 xaml 에서 ToggleButton 의 IsChecked 를 변경하는 것을 시도하던 중 알아냈다.  b: 는 Behavior 를 사용하는 xmlns 이름이다.Interaction.Triggers - EventTrigger : EventName  - ChangePropertyAction : TargerObject, PropertyName, Value를 이용하여 변경이 가능하다.xaml 에서 할 수 있는 것을 하나하나 ..

WPF 2024.07.12