Code/WPF 15

WPF TreeViewItem Stretch

문제: TreeView의 HorizontalContentAlignment를 Stretch로 지정해도 TreeViewItem의 Header가 여전히 최소 Width에 고정되어있음 원인: TreeViewItem의 내부 구조는 3 * 2 Grid로 되어 있음 Header가 하나의 Column에만 위치해있고 TreeViewItem의 Width가 변화해도 해당 Column의 Width는 변화하지 않음 Header의 ColumnSpan을 변경해 이를 해결할 수 있음 해결: https://stackoverflow.com/a/30829770/13031224 Highlight whole TreeViewItem line in WPF If I set TreeViewItem Background it highlights the..

Code/WPF 2021.10.15

WPF XamlParseException 버그?

문제: System.Windows.Markup.XamlParseException InvalidCastException: Unable to cast object of type 발생 조건: 1. ItemsControl의 ItemsPanelTemplate에 커스텀 컨트롤 사용 2. 해당 커스텀 컨트롤에 DragDrop.Drop 이벤트 연결 3. ItemsControl 바깥에 TextBlock이 존재 예시: CustomList는 기본 VirtualStackPanel임 임시 해결: DragDrop.Drop 이벤트 대신 Drop 이벤트를 사용 기타: 실행 시에만 오류 발생 특이하게 오류는 TextBlock에 표시되지만 ItemsPanelTemplate의 DragDrop.Drop 부분을 수정해야 오류가 사라짐

Code/WPF 2021.09.30

WPF DragDrop이 작동하지 않음

문제: DragDrop이 정상적으로 작동하지 않음 (불가 표시 커서) 원인: 일반 권한을 가진 프로그램에서 드래그해서 관리자 권한을 가진 프로그램에 드롭 할 수 없음 1. 디버깅 시에만 작동하지 않음: 드래그할 프로그램이 일반 권한으로 실행중이고 Visual Studio가 관리자 권한으로 실행중임 2. 드래그할 프로그램이 일반 권한으로 실행중이고 드롭할 프로그램이 관리자 권한으로 실행중임 해결: 1. 일반 권한으로 Visual Studio나 프로그램 실행 2. 드래그를 시작할 프로그램을 관리자 권한으로 실행

Code/WPF 2021.09.25

WPF 최대화 문제

문제: WindowStyle=None으로 지정하고 커스텀 WindowChrome을 사용하면 최대화 시 윈도우가 좌측 상단으로 삐져나가고 우측 하단에 빈 공간이 생김 해결: protected override void OnSourceInitialized(EventArgs e) { base.OnSourceInitialized(e); ((HwndSource)PresentationSource.FromVisual(this)).AddHook(HookProc); } public static IntPtr HookProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == WM_GETMINMAXINFO) { // We need..

Code/WPF 2021.08.21

VS2019 WPF Invalid Markup 오류

문제: 정상적으로 빌드와 실행이 잘 되는데도 불구하고 WPF 디자이너에 Invalid Markup 오류가 뜸 플러그인 문제는 아님 해결 중: .vs 폴더 제거로 해결 -> 프로젝트의 열린 창이 초기화되는 문제가 있음 $HOME\AppData\Local\Microsoft\VisualStudio 폴더 제거로 해결 -> 설정이 초기화되는 문제가 있음 : 설정이나 초기값, 임시 파일이나 캐시가 잘못되어 생기는 문제같음

Code/WPF 2021.07.13