loading

프로그래밍/C#

[C# WinForm] Control 배경 변경하기

침착곰 2021. 5. 26. 23:59
반응형

안녕하세요

C# WinForm으로 프로젝트를 하다보면 주로 판넬, 버튼, 라벨 등의 배경색을 변경해서 디자인을 해줘야할 때가 있습니다

이번 포스팅에서는 Control의 배경을 변경하는 방법에 대해서 알아보겠습니다

 

목차

Control 속성으로 배경색 변경하기
코드에서 배경색 변경하기
속성에서 배경이미지 변경하기
코드에서 배경이미지 변경하기
배경색상과 배경이미지를 동시에 지정한 경우

 


Control 속성으로 배경색 변경하기

먼저 배경색을 변경할 Control을 선택합니다

BackColor속성을 선택하면 "사용자 지정", "웹", "시스템" 탭으로 다양한 색상으로 변경할 수 있습니다

 

1. "사용자 지정"

 사용자 지정은 사용자가 직접 색상을 지정할 수 있는 색상 탭입니다

사용자 지정의 비어있는 색깔을 우클릭하면 사용자 색상을 추가할 수 있습니다

2. "웹"

 X11 색 이름입니다

넷스케이프나 인터넷 익스플로러 같은 브라우저에는 별도로 여러 색상들이 정의되어있어 이들 색상을 가져와서 사용하는 것 입니다

출처 : https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%83%89%EC%83%81

3. "시스템"

 Visual Studio에서 제공하는 색상입니다

Visual Studio의 Control을 입력하는 경우 디폴트 색상들이 나열되어 있습니다

 

속성 탭에서 간단하게 디자인의 색상을 변경할 수 있습니다

간단하게 BackColor를 검정색으로 변경한 화면입니다

결과

 


코드에서 배경색 변경하기

첫 번째 방법은 RGB 색상을 변경하는 방법입니다

Controls.BackColor = Color.FromArgb(R값, G값, B값);

을 입력하여 색상을 변경합니다

this.panFill.BackColor = Color.FromArgb(255, 255, 255);

 

결과

위에서 검은색으로 색상을 변경했으니 흰색으로 변경했습니다

 

RGB값이 아닌 웹 색상으로 변경하는 방법입니다

Controls.BackColor = color.변경하려는 웹 색상

을 입력해서 색상을 변경합니다

this.panFill.BackColor = Color.Black;

 

결과

 


 

속성에서 배경이미지 변경하기

속성에서 색상 이외에도 배경이미지를 가져와 변경할 수 있습니다

속성에서 "BackgroundImage"를 선택합니다

"리소스 선택" 팝업이 나타나고 "로컬 리소스"와 "프로젝트 리소스 파일"을 선택할 수 있습니다

"로컬 리소스"로 로컬에서 이미지를 가져오면 한 번 쓰면 더 이상 재사용을 하지 않습니다

"프로젝트 리소스 파일"을 가져오면 로컬에서 가져온 이미지를 해당 Resources.resx에서 저장했다가 이미지를 재사용할 수 있습니다

 

결과

배경이미지를 추가하면 아래와 같이 들어갑니다

보통 BackgroundImageLayout가 Tile로 세팅되어 있어 배경이미지가 잘려서 보이실겁니다

BackgroundImageLayout은 "None", "Tile", "Center", "Stretch", "Zoom" 총 5개가 있습니다

차례대로 설명하면

None : 이미지가 컨트롤의 사각형 상단 왼쪽에 맞춰집니다

Title : 이미지가 컨트롤의 사각형에 바둑판식으로 배열됩니다

Center : 이미지가 컨트롤의 사각형 가운데에 맞춰집니다

Stretch : 이미지가 컨트롤의 사각형에 맞게 늘어납니다

Zoom : 이미지가 컨트롤의 사각형 내에서 확대됩니다

 -> 비율에 맞춰 늘어납니다

원하는 형태로 BackgroundImageLayout까지 선택하면 Control의 배경이미지 선택이 끝납니다

 


코드에서 배경이미지 변경하기

코드에서 배경이미지를 변경하는 방법은 배경이미지의 경로를 가져와서 넣어줍니다

아래 소스를 참고하여 배경이미지를 넣어줍니다

panFill.BackgroundImage = Image.FromFile("C:\\최애.jpg"); // 경로에서 이미지를 호출
panFill.BackgroundImageLayout = ImageLayout.Zoom; // 이미지 레이아웃 설정 Zoom

 

결과

 


배경색상과 배경이미지를 동시에 지정한 경우

배경색상과 배경이미지를 동시에 지정한 경우는 배경이미지를 우선시해서 보여줍니다

아래를 참고바랍니다

 

결과

 

여기까지 Control의 배경색상 및 배경이미지를 세팅하는 방법에 대해서 알아봤습니다

C# WinForm 개발에 있어 제 포스팅이 도움이 되었으면 좋겠습니다!

혹시 틀린 부분이 있다면 댓글 부탁드립니다

반응형
그리드형