[c# wpf] StaticResource란? (DynamicResource 비교) wpf 공부를 하면서 아래와 같은 StaticResource 라고 적힌것을 보신적이 있으실텐데요. 이 친구의 정체가 무엇인지 알아보도록 하겠습니다. 1. StaticResource 란? 1) background color 변경(기본) 위와 같은 버튼이 있습니다. 우리는 이 버튼의 컬러를 Red로 바꾸고 싶은데요. 어떻게 할까요? Background 속성에 Red컬러를 넣어주면됩니다. 우리가 아는 아주 기본적인 방법인데요. 이외에도 다른 방법이 있다는걸 아시나요? 2) background color 변경(with StaticResource) (1) 먼저 기존에 작성했던 Background 컬러 부분을 지워줍니다. (2) 태그를 만듭니다. 그리고 그 안에 SolidColorBrush 엘리먼트와 속성인 Col.. c#/wpf 2022. 5. 30. [c# wpf] 데이터 바인딩 기초 개념/ 예제 완벽 정리 이번 포스팅에서는 텍스트박스에 텍스트를 입력하면 바로 밑에 해당 내용이 그대로 작성되도록 하고 싶습니다. 이때 바인딩을 사용해볼거에요. 바인딩이라는 단어 뜻에서 유추할 수 있듯이 바인딩은 서로 묶는 기능을 제공합니다. 우리 예시에서는 입력부분인 TextBox와 출력부분인 Label을 함께 묶어, 한쪽에서 변경이 일어나면 그대로 다른 곳에서도 일어나는 효과를 만들어 주었습니다. 1. Target은 뭐고? Source는 뭐야? 우선 바인딩을 이해하기 위해선 목적지를 나타내는 Target과 출발지를 나타내는 Source , 이 두 가지의 개념에 대해서 항상 염두해 두셔야 합니다. 우리 예에서는 출발지를 의미하는 Source는 무엇이고 도착지인 Target은 무엇일까요? 당연히 입력을 하는 부분이 Source .. c#/wpf 2022. 5. 27. [c#] 오버라이드 ToString은 뭐지? (커스텀) c# 을 공부하다보면, 클래스에 아래와 같이 override가 붙은 ToString()본적이 있을텐데요. 이 친구 정체를 알아보도록 하겠습니다. 1. 디폴트 ToString메서드 아래와 같이 간단한 Person 클래스를 만들어보았습니다. 그리고 클래스로 생성한 객체를 그대로 출력해보겠습니다. 어떤 값이 나올까요? output: 클래스의 이름이 그대로 출력이 됩니다. 해당 값의 타입은 string타입입니다. 자 여기서 우리가 깨달아야할건 이겁니다. 분명 "객체 자체를 출력"했는데, "string형태의 특정값이 출력"된다라는건 내부적으로 해당 클래스명을 string형태로 출력하라는 메서드가 숨어 있다는 겁니다. 정말 그런지 확인해보겠습니다. 2. 커스텀 ToString 메서드 기존 클래스 ToString().. c# 2022. 5. 26. [c#] array vs array list (둘의 차이점과 사용시기) c#을 처음 공부하면서 둘이 혼용되어 사용된걸 본적은 있는데, 정확한 차이점을 모르다보니 언제 써야 하는지 모르셨던분들은 이번 포스팅을 통해 둘의 차이에 대해 알아보도록 하겠습니다. 1. Array의 약점? (배열 선언, 생성이 낯선 분들은 해당 포스팅 참조) (1) 크기 고정 아래와 같이 배열을 정의 해보겠습니다. 그리고 해당 배열에 값을 하나씩 채워넣어 볼건데요. 런타임 에러가 발생합니다. 왜냐하면 Array를 생성시 크기를 정해야만 하는데, 우리가 만든 Array는 2개까지밖에 넣을 수 없습니다. 그런데 3개를 넣으려고 하니 발생하는 에러인거죠. (2) 타입(type) 고정 이번에는 "hello"라는 값을 넣고 싶습니다. 그런데 컴파일 에러가 발생하네요. 왜냐하면 우리가 기존 배열 생성시, int타.. c# 2022. 5. 26. [c#] 2023년 모르면 뒤쳐지는 visual studio 단축키 이번 포스팅에서는 visual studio에서 사용되는 유용한 단축키들에 대해 알아보도록 하겠습니다. 1. 들여쓰기, 정렬하기 1) ctrl + k + d (전체코드 정렬) 아무 곳에 커서를 놓고 해당 단축키를 누르면 전체 코드가 정렬됩니다. 2) ctrl + k + f (선택 영역 정렬) 선택 영역만 정렬을 해주는 단축키입니다.(블록을 지정해서 사용하시면 됩니다.) 2. 주석 처리 1) 주석 : ctrl + k + c 2) 주석 해제 : ctrl + k + u 3. 클래스 만들기 cla + tab 2번 cla 까지 적어주시고 tab을 2번 누르면 기본 클래스 뼈대가 생성됩니다. 4. Main 함수 만들기 svm + tab 2번 svm 까지 적어주시고 tab을 2번 누르면 main함수가 생성이 됩니다. .. c# 2022. 5. 25. [c# wpf] 마우스 이벤트(더블클릭, 오른쪽클릭, 왼쪽 클릭) 하는법 이번 포스팅에서는 윈도우 창에 마우스 이벤트(더블클릭 or 오른쪽 클릭 or 왼쪽 클릭)를 날렸을때, 해당 이벤트가 무엇인지 메세지창으로 알려주는 법에 대해 알아보도록 하겠습니다. 1. 여러가지 이벤트 1) 마우스 더블 클릭(Double click) //MainWindow.xaml 이곳은 그냥 빈화면으로 두겠습니다. /MainWindow.xaml.cs(코드 비하인드) 여기서 우리가 집중해야할 부분은 더블클릭을 했을 경우 어떤 이벤트를 발생시킬지 결정하는 것입니다. 우리가 앞서 목표한바는 메세지창에 해당 내용이 뜨게하는것이었죠? 그렇기 때문에 MainWindow_MousedoubleClick함수에 관련 코드를 적어줍니다. 추가적으로 MouseDoubleClick 이벤트에 우리가 만든 함수를 연결시켜주는 작.. c# 2022. 5. 25. [c# wpf] 새로운 창(윈도우) 여는 법 이번 포스팅에는 버튼을 클릭하면 새로운 창이 뜨는 UI를 만들어 보도록 하겠습니다. (해당 포스팅은 이전 포스팅과 이어지는 부분으로 먼저 읽고 오시면 이해에 도움이 됩니다.) 1. 창(윈도우) 추가 2. Code-behind 단에 이벤트 추가 //MainWindow.xaml.cs 새로 생성한 xaml파일 이름으로 클래스를 객체화 선언을 합니다. 여기선 Widow1()로 생성을 하였고, 해당객체를 Window 타입의 변수 w1에 할당을 하였습니다. 추가적으로 해당 객체의 메서드인 Show();를 통해 윈도우 창을 새로 띄우는 명령어를 추가합니다. cf) ShowDialog랑 차이는? ShowDialog는 새창을 띄우는 건 같지만 기존 창을 freeze시킵니다. 즉 기존창에서는 작업이 불가하게 합니다. c#/wpf 2022. 5. 24. [c# wpf] 탭(Tab Control) 사용법 탭 컨트롤을 통해 위와 같이 탭을 클릭할때마다 페이지가 바뀌는 효과를 만들 수 있습니다. 페이지랑은 다르게 별도의 분리된 페이지를 구성하는 것도 아니고, code-behind단도 따로 필요없이, 오직 xaml 상에서 구현이 가능하다는 특징이 있습니다. 1) 기본 layout //MainWindow.xaml 위 코드가 오늘 작성할 코드의 전부입니다. 하나씩 뜯어보자면, 탭은 특이하게 TabControl이라는 메인 엘리먼트를 기준으로 그 안에 자식 엘리먼트인 TabItem을 둡니다. 위 그림에서 탭1, 탭2 는 TabItem에 Header부분을 통해 수정이 가능합니다. 다음으로 아래 빨간색 사각형에 해당하는 부분은 TabItem 엘리먼트 안에 적어주는 내용이 출력이 됩니다. 우리 코드에서는 Label 엘리먼.. c#/wpf 2022. 5. 24. [c# wpf] page(페이지)란? (윈도우랑 뭐가 다를까?) 페이지(page)란 창을 새롭게 띄우는게 아니라 기존 윈도우안에서 내용물만 바꾸는거라고 볼 수 있습니다. 아래처럼 버튼을 누르면 페이지가 바뀌는 효과를 보실 수 있죠? 이런게 페이지가 변경 되는 모습입니다. 지금부터 차근 차근 페이지를 만드는 방법에 대해서 알아볼게요! 1. 페이지 생성 우리 포스팅에서는 페이지를 2개 만들어보겠습니다. 같은 방식으로 Page2.xaml도 만들어 아래와 같이 두개의 파일을 생성합니다. 2. 페이지 내용 수정 1) Page 파일의 code-behind단은 기본 디폴트 상태로 둡니다. 2) 각각의 페이지에 xaml 단을 수정해줍니다. //Page1.xaml //Page2.xaml 3. 메인 window 수정 //MainWindow.xaml 1) 기본 레이아웃 각 페이지에 접속.. c#/wpf 2022. 5. 24. [c# wpf] 버튼 클릭 => 텍스트 출력 2가지 방법 이번 시간에는 아래와 같이 클릭 버튼을 눌렀을때 특정 텍스트가 아래에 출력되는 방법에 대해 알아보도록 하겠습니다. 1) 기본 레이아웃 코드 TextBlock에 두꺼운 줄을 넣기위해 Border로 감싼 형태로 레이아웃을 구성해보았습니다. 2) 클릭 이벤트 추가 (1) 첫번째 방법 //MainWindow.xaml //MainWindow.xaml.cs(코드비하인드) Click 프러퍼티에 Button_Click이라는 이름의 함수를 만듭니다. 자동 완성 기능을 이용해 Tab을 누르면 코드비하인드 단에 자동적으로 함수가 생성되는데요. 대신 body 내용물은 수정해줘야겠지요. 저는 바디부분에 this.textbox.Text ="넣고싶은 내용" 형태로 코드를 수정해주었습니다. 여기서 this.textbox는 x:Nam.. c#/wpf 2022. 5. 23. [c# wpf] 버튼 content에 중괄호(curly braces) 넣기 이번 포스팅에서는 아래와 같이 중괄호를 윈도우창에 띄워보는 방법에 대해 알아보도록 하겠습니다. 1) 버튼 태그 안에 직접 넣기 제일 간단한 방법으로 태그를 감싼 형태로 작성해주시면 됩니다. 2) Content에 넣는 방법 위와 같은 방법이 아닌 Content="값" 형태로 넣으면 아래와 같은 오류가 발생합니다. 이런 경우에는 아래와 같이 {} 를 추가해주시면 정상적으로 출력이 됩니다. c#/wpf 2022. 5. 23. [c#] 다형성(polymorphism) 이란? | 왜 사용하는가? + 오버라이딩 이번 포스팅에서는 다형성에 대해 알아보도록 하겠습니다. (포스팅을 읽기전 반드시 상속에 관한 해당 포스팅을 읽고 와주시기 바랍니다.) 1. 다형성이란? 우리에게는 두개의 클래스가 있습니다. Monkey 클래스는 Animal 클래스를 상속받은 형태이고 , 두 클래스의 메소드는 같은 이름과 같은 시그니쳐로 구성 되어 있습니다. 자, 여기서 자식 클래스 객체를 생성해볼까요? 그런데! 아래와 같은 방법으로도 생성이 가능합니다. 두번째에서 어리둥절한 분들이 많을 것같은데요. "아니 어떻게 Monkey()로 객체 생성을 했는데 Animal 타입의 변수에 할당할 수가 있지?" 이것을 가능하게 해주는것이 이번 포스팅의 주제인 다형성에 관한것입니다. 다형성(Polymorphism)이란 상속을 받은 자식 클래스(여기선 M.. c# 2022. 5. 20. 이전 1 2 3 4 5 6 7 8 다음