반응형

프로그래밍/WPF 52

[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

[WPF] 외부 Font 적용하기 - Roboto

기본 폰트만 사용하다 외부 폰트를 사용해야할 때가 있다. 무료 폰트인 Roboto 폰트를 예를 들어보겠다. 일단 Roboto 폰트를 Google에서 다운받는다. 다운받은 Font를 프로젝트에 아래와 같이 넣는다. App.xaml 을 연다. 아래와 같이 추가해준다. applicaton:,,,/Fonts/#Roboto applicaton:,,,/Fonts/#Roboto Black applicaton:,,,/Fonts/#Roboto Condensed applicaton:,,,/Fonts/#Roboto Condensed Light applicaton:,,,/Fonts/#Roboto Light applicaton:,,,/Fonts/#Roboto Medium applicaton:,,,/Fonts/#Roboto Th..

프로그래밍/WPF 2022.09.08

[WPF] MouseWheel Delta Binding

InputBinding으로 보통 마우스 클릭 위주로 바인딩은 쉽다. 하지만 MouseWheel의 Up Down의 경우 MVVM 으로 바인딩하려면 다른방법을 써야한다. Behavior를 이용하는 방법인데 이는 아래와 같다. 일단 MouseWheel의 Argument를 가져오기 위해 어떤 클래스를 상속해야하는지 확인해보자. https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.uielement.mousewheel?view=windowsdesktop-6.0 UIElement.MouseWheel 이벤트 (System.Windows) 마우스 포인터가 이 요소 위에 있는 동안 사용자가 마우스 휠을 굴리면 발생합니다. docs.microsoft.com 위와 같이 M..

프로그래밍/WPF 2022.08.22
반응형