반응형

전체 글 134

[에드센스] 개발자 블로그 수익 및 6개월 후기

블로그는 내 첫 게시글을 확인해보니 2020-08-03 에 시작하여 벌써 2022-10-14일까지 시간이 흘렀다. 사실상 에드센스를 붙여서 수익을 노리고 블로그를 개설한건 아니고 말그대로 에버노트나 노션같은 기록하며 남겨놓는 것을 티스토리에 옴겨두는게 좋겠다라는 생각을 하기 시작했다. 에버노트같은 노트 앱은 내가 개발을 하면서 모르는 것들 혹은 버그들, 그리고 각종 구현 방법들을 정리없이 마구자비로 복사 & 붙여넣기만 한 잡동사니에 불과했고, 잘쓰는 사람들은 정말 정리를 어마어마하게 잘해서 활용도가 매우 높다. 하지만 나는 사실상 그렇게까지 할 자신도 없었고 어느정도 구분만 시켜놓고 글을 올려 놓자라는 생각이였다. (뭐... 사람들이 보는 글이다보니 최소한 정리와 주석이라도 세세하게 달겠지라는 생각이였다..

일상다반사 2022.10.14

[WPF] DataGrid Row Num Column 추가하기

DataGrid를 사용할 떄, 데이터의 Row Num을 표시하고 싶을 때가 있다. 데이터에 Index 값이 있으면 바로 바인딩 처리하면되지만 해당 칼럼데이터가 없다면 Item과 ItemsSource를 IMultiValueConverter으로 바인딩하여 Index를 알아내는 방법으로 표현 가능하다. // DataGrid에 바인딩할 데이터 클레스 선언 public class GridData { public string Data { get; set; } } Converter 선언 public class RowNumberConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter,..

프로그래밍/WPF 2022.10.13

[WPF] OpenFileDialog 폴더 선택하기

기존에 OpenFileDialog를 이용하면 파일을 선택할 수 있다. 하지만 경로를 선택해야 할 경우 폴더를 선택해야한다. 뭐... 몇가지 방법이 있는데 WinForm Namespace를 추가하여 사용하는 FolderBrowserDialog는 아래와 같은 다이어로그를 만나볼 수 있다. 해당 방법은 다이어로그가 맘에 들지 않을 것이다. 나같은 경우는 Nuget에서 WindowsAPICodePack 패키지를 설치하여 이용한다. 1. Nuget 에서 WindowsAPICodePack 를 검색한 뒤 설치한다. 2. 아래의 코드 블럭을 이용해 사용한다. using (var dialog = new CommonOpenFileDialog()) { dialog.IsFolderPicker = true; if (dialog..

프로그래밍/WPF 2022.10.13

[WPF] ComboBox 선택에 따라 컨트롤 바꾸기 - Control Switching by ComboBox

화면을 제작하다보면 선택형 Control (이 포스트의 예로는 ComboBox)에 따라 내가 원하는 컨트롤들을 보여주기를 원할 때가 많다. Converter를 배운 사람이라면 먼저 Visible을 이용하여 컨트롤을 먼저 떠오를텐데 이것을 이용하는 것보다 좀더 손쉽고 간단한 방법이 있다. 이것은 Template를 동적으로 변경해주는 것인데 아래와 같은 방식으로 손쉽게 처리할 수 있다.

프로그래밍/WPF 2022.09.26

[WPF] 오류 해결: 리소스를 찾을 수 없습니다. 리소스 이름은 대/소문자를 구분합니다.

WPF Project를 진행하던 도중 내가 만든 UserControl 내에 DrawingImage으로 만든 아이콘을 리소스로 사용할때 생긴 일이다. 분명 ResourceDictionary에 Icon들을 정상적으로 선언하고 App.xaml에 등록을하였다. 심지어 UserControl 내에서 정상적으로 StaticResource에 관한 인텔리센스까지 나와서 UserControl을 구성하는데 문제가 없었다. 그러나 이 UserControl을 사용하는 Page에서 내가 만든 UserControl에 Icon 리소스를 찾을 수 없다며 디자이너에서 오류를 발생시켰다. (물론 실행을 시키면 정상동작하였다.) 디자이너를 사용할수 없으면 작업 속도가 많이 떨어지게 되니 이점을 해결하고자 하였고 이것은 VS 2017버전부터..

프로그래밍/WPF 2022.09.23

[WPF] TabControl Header에 Close Button 구현 MVVM 패턴

WPF 에서 TabControl을 사용하다보면 Tab을 추가 및 삭제 처리를 해야하는 경우가 많다. Main Content에 쓰이는 TabControl에는 대부분 Tab Header에 닫기 버튼이 존재 하는경우가 다수 있다. 기본 TabControl에는 존재 하지 않으니 MVVM 패턴을 이용하여 이를 구현하는 방법에 대해 알아보도록 하자. 일단 기본적으로 ItemsSource에 들어갈 기본 객체를 선언해보자. public interface ITab { string Header { get; set; } ICommand CloseCommand { get; } event EventHandler CloseEvent; object DataContext { get; set; } } public class Tab :..

프로그래밍/WPF 2022.09.21

[WPF] ListView & ItemsControl 홀수/짝수 번째 배경색 변경하기

List를 화면에 표시할때 홀수 번째, 혹은 짝수번째 Item만 Background 색을 바꾸고 싶을때가 있다. 이를 위해서 AlternationCount 와 AlternationIndex를 이용하여 해결하는 방법이 있다. AlternationCount는 반복적으로 AlternationIndex의 값을 바꾸기 위한 수치이다. 만약 AlternationCount가 3이라면 AlternationIndex는 0~2 까지 순서대로 나오게 된다. 이점을 이용하여 AlternationIndex를 바인딩하여 Background를 색을 바꾸어주면 된다. ItemsControl에서도 같은 방식을 이용한다. 1 2 3 4

프로그래밍/WPF 2022.09.20

[WPF] Image Resource 등록 및 사용

이번에는 이미지 리소스를 등록 및 사용하는 방법에 대해 알아보도록 하겠다. 1. 프로젝트 파일에서 Properties > Resources.resx 창을 연다. 2. 이미지를 선택한다. 3. 원하는 이미지들을 드레그하여 추가한다. 4. 추가하였다면 Resources 폴더가 프로젝트 내에 생겼으며, 추가한 이미지들이 Resources폴더 내에 있을 것이다. 5. 솔루션 탐색기에서 Resources 내의 추가한 이미지 리소스를 오른쪽 버튼을 클릭하여 속성 화면으로 들어간다. 6. 빌드 작업을 반드시 Resource로 추가한다. 만약 Resource로 변경하지 않고 사용한다면 프로그램을 실행시켰을때 해당 이미지가 표시되지 않는다. 7. 실제 사용법

프로그래밍/WPF 2022.09.16
반응형