전체 글285 WPF TreeViewItem Font 스타일 변경 방법 WPF 에서 TreeViewItem 글꼴 을 굵게 표시 하려면 XAML 에서 Style를 사용할 수 있습니다 . 방법은 다음과 같습니다 .굵은 글꼴 스타일 적용TreeViewItem Style를 정의하고 Setter 를 사용 하여 FontWeight 속성에 Bold를 설정할 수 있습니다 . 글꼴을 동적으로 굵게 만들기특정 조건 ( 예 : TreeViewItem이 선택된 경우 )에서만 글꼴을 굵게 표시 하려면 Trigger를 사용할 수 있습니다 .트리거를 사용한 예 : .. 2025. 4. 23. WPF MVVM에서 Window Close 호출 방법 WPF MVVM에서 Window를 닫는 방법은 MVVM 패턴을 유지하면서 ViewModel에서 닫기 동작을 제어하는 방식으로 구현할 수 있습니다. 아래는 일반적인 접근 방법입니다:1. Action을 활용한 Window 닫기ViewModel에서 Action을 정의하고, View에서 이를 설정한 후 ViewModel에서 호출하는 방식입니다.ViewModelpublic Action CloseAction { get; set; }public ICommand CloseCommand { get; }public ViewModel(){ CloseCommand = new RelayCommand(ExecuteClose);}private void ExecuteClose(){ CloseAction?.Invoke();.. 2025. 4. 23. DialogService 이용하는 방법 DialogService를 이용하면 MVVM 패턴에서 ViewModel과 View 간의 의존성을 줄이면서도 깔끔하게 MessageBox와 같은 다이얼로그를 처리할 수 있습니다. 아래는 DialogService를 구현하고 사용하는 예입니다:1. DialogService 인터페이스 정의먼저, 다이얼로그 동작을 추상화하는 인터페이스를 정의합니다.public interface IDialogService{ void ShowMessage(string message, string title);}2. DialogService 구현인터페이스를 실제로 구현하여 MessageBox를 호출하는 클래스를 작성합니다.using System.Windows;public class DialogService : IDialogSer.. 2025. 4. 23. WPF MVVM 패턴을 이용한 프로그램에서 Messagebox를 실행할 경우 호출 스택에서 throw 발생하는 경우 WPF MVVM 패턴에서 Event 함수 내에서 MessageBox를 실행하는 중 호출 스택에서 오류가 발생한 이유는 보통 UI 스레드와 관련이 있을 가능성이 높습니다. MVVM 패턴에서는 데이터와 UI를 분리하여 ViewModel에서 UI 요소를 직접 제어하지 않도록 설계되었습니다. 그러나 MessageBox는 UI 요소를 직접 생성하기 때문에 문제가 발생할 수 있습니다. 주요 원인으로는 다음과 같은 경우를 고려할 수 있습니다: 1. UI 스레드 접근 문제: Event 함수가 비동기 작업(예: Task.Run() 또는 다른 비동기 메서드) 내에서 실행되고 있다면, MessageBox를 호출할 때 UI 스레드가 아닌 다른 스레드에서 접근하려고 해서 오류가 발생할 수 있습니다. 이 경우 Dispatcher.. 2025. 4. 23. WPF Group에서 Category 또는 Group별로 표시 하는 방법 WPF DataGrid에서 그룹별로 데이터를 표시하려면 CollectionViewSource를 사용하여 데이터를 그룹화할 수 있습니다. GroupStyle을 적용하면 그룹별 헤더를 만들 수도 있습니다. 1. CollectionViewSource를 사용한 데이터 그룹화먼저, CollectionViewSource를 활용하여 데이터를 그룹화합니다. 위 코드에서 PropertyGroupDescription을 사용하여 "Category" 속성을 기준으로 그룹화합니다.2. DataGrid에서 그룹별 표시하기이제 DataGrid에 ItemsSource를 CollectionViewSource로 설정하고 GroupStyle을 사용하여 헤더를 표시할 수 있습니.. 2025. 4. 23. BTLE SignalStrength 확인 방법 Bluetooth Low Energy Sample Codehttps://mydevnote.tistory.com/329 Bluetooth Low Energy(BT LE) Sample CodeBluetooth 통신 요청을 받아서 개발을 검토 했고 초기 개발을 완료해서 테스트 해보니 장치가 내가 생각했던 것이 아니었다. 내가 개발한 것은 Bluetooth Classic 방식 이었던 것이다. 요즘 스마트폰이mydevnote.tistory.com 위에서 제공하는 코드를 참조해서 개발을 하다가 SignalStrength(신호 강도) 확인 요청을 받았다.아래 클래스에서 DeviceInformation 객체를 통해 Id, Name, IsPaired 등의 정보를 확인 할 수가 있다.그러나 SignalStrength는 없.. 2025. 2. 20. Bluetooth Low Energy(BT LE) Sample Code Bluetooth 통신 요청을 받아서 개발을 검토 했고 초기 개발을 완료해서 테스트 해보니 장치가 내가 생각했던 것이 아니었다. 내가 개발한 것은 Bluetooth Classic 방식 이었던 것이다. 요즘 스마트폰이나 이어폰 등에서 사용하는 Bluetooth 통신 방식은 BT LE이다.Bluetooth Low Energy(BLE)BLE는 종종 Bluetooth Smart 로도 불리며 classic Bluetooth의 경량화 버전을 목표로 블루투스 4.0의 일부로 발표되었습니다. Classic Bluetooth와 겹치는 부분이 존재하지만 BLE는 완전히 다른 표준으로 블루투스 표준화 그룹인 Bluetooth SIG에 의해서 개발되기 전까지 Nokia의 사내 프로젝트(Wibree)로 시작하였습니다.BLE를 .. 2025. 2. 20. Redmine CKEditor4 Base64 (클립보드 이미지 표시) 문제 해결 Redmine 3.4.3 버전을 사용하고 있다.그리고 Editor로는 CKEditor 1.1.4를 설치해서 사용 하는데 클립보드 이미지가 Edit 모드에서는 보이지만 View 모드에서는 표시가 되지 않는 문제가 있었다.검색을 해보니 Base64 인코딩 형식으로 저장을 하는데 CKEditor 플러그인으로 Base64 설치를 해야 한다고 한다. 당연히 clipboard image paste 1.13도 설치를 했는데 무슨 문제인지 화면에 클립보드 추가 버튼이 표시가 되지 않아 CKEditor에 Base64를 설치해서 사용하도록 했다. clipboard_image_paste가 정상적으로 작동되지 않는 문제도 해결을 해야 할 듯 싶다. 내가 설치해서 사용하는 버전 정보이다. Paste image as base64.. 2025. 2. 3. "Bluetooth 및 장치 > 장치" 설정 실행 CMD 블루투스 장치 설정 창을 CMD로 실행: bthprops.cpl 2024. 10. 21. 이전 1 2 3 4 ··· 32 다음