C# - System.Windows.Media.Color to System.Drawing.Color
C# 에서 Color와 관련된 것이 2가지가 있습니다. 한가지는 System.Drawing.Color 이고 다른 한가지는 System.Windows.Media.Color 입니다. 두가지 모두 색과 관련된 정보를 담고 있습니다. 두개 모두 구조체이고 ValueType입니다.
1. System.Drawing.Color
System.Drawing.Color의 경우 아래와 같이 사용할 수 있습니다.
A는 해당 색의 투명도를 표현합니다. 그리고 RGB값을 이용해 색을 만들 수 있습니다. 다른 방법으로 이미 만들어져있는 색들 중에서 가져오는 방법이 있습니다.
이런식으로 미리 정의된 Color를 그대로 이용할 수 있습니다.
2. System.Windows.Media.Color
System.Windows.Media.Color 의 경우 다음과 같이 사용할 수 있습니다. 해당 Color를 이용하기 위해서는 PresentationCore.dll 라는 dll를 참조하여야 합니다.
아까와 차이점은 A, R, G, B 라는 변수를 int 에서 byte로 바꿔준 것입니다. 사용법은 거의 같습니다. 그리고 System.Windows.Media.Color 에도 미리 Color들이 정의가 되어있습니다. 그리고 이 Color를 사용할 수 있습니다. 조금 다른 것은 별로의 Colors 라는 클래스가 있어서 해당 클래스에서 색을 저장하고 있다는 것입니다.
프로그래밍을 하다가 보면 두가지 Color를 혼합하여 사용하는 경우가 많이 있는데요. 이 경우 System.Drawing.Color 를 System.Windos.Media.Color 로 변경하거나 System.Windows.Media.Color 를 System.Drawing.Color 로 변경하는 경우가 있는데요. 이 경우 어떻게 하는지 알아보도록 하겠습니다.
3_1. System.Drawing.Color to System.Windows.Media.Color
가장 간단한 방법은 아래와 같은 방법입니다.
3_2. System.Windows.Media.Color to System.Drawing.Color
가장 간단한 방법은 아래와 같은 방법입니다.
이런식으로 변환하는 함수를 만들어서 사용할 수 있습니다. 또 확장 메서드를 이용해서 변환함수를 정의할 수 있습니다.
이런식으로 확장 메서드를 정의를 하고 필요한 곳에서 사용하면 되죠.
아래는 실제로 사용한 예제입니다.
색을 바꾸는 경우가 자주 있다면 이런식으로 사용하면 편하겠죠?