Avalonia에서 색상 문자열과 색상 객체 변환하기

Avalonia 색상 변환 방법

소개

UI 개발에서 색상 변환은 매우 중요한 작업입니다. 특히 문자열 형태의 색상 값을 실제 색상 객체로 변환하거나 그 반대의 작업은 빈번하게 발생합니다. 이 글에서는 Avalonia UI 프레임워크에서 색상 문자열과 색상 객체 간의 변환 방법을 살펴보겠습니다.

문자열로 Brush 생성하기

Brush를 문자열로 생성하는 방법은 간단하지만, TryParse 메서드가 없어 예외 처리가 필요합니다. 유효하지 않은 입력은 System.FormatException을 발생시킵니다.

색상 이름으로 Brush 변환

var colorBrush = Brush.Parse("aqua");

HEX 값으로 Brush 변환

var colorBrush = Brush.Parse("#66CCFF");

평가: TryParse 메서드가 없어 예외 처리가 필요하다는 점에서 실용성은 다소 떨어집니다. UI 상호작용에서 빈번히 사용되는 경우, Try-Catch 블록으로 감싸야 하므로 성능에 대한 우려가 있을 수 있습니다.

문자열로 Color 객체 생성하기

Color 객체를 Brush로 변환하는 방법은 잘 알려져 있습니다.

var colorValue = Color.FromRgb(255, 255, 0);
var colorBrush = new SolidColorBrush(colorValue);

Brush 생성과 유사하지만, TryParse 메서드가 추가되어 더 안전한 처리가 가능합니다.

색상 이름으로 Color 변환 (Parse)

var colorValue = Color.Parse("aqua");

HEX 값으로 Color 변환 (Parse)

var colorValue = Color.Parse("#ccff66");

색상 이름으로 Color 변환 (TryParse)

if(Color.TryParse("aqua", out var colorValue))
{
    // 변환 성공 처리
}
else
{
    // 변환 실패 처리
}

HEX 값으로 Color 변환 (TryParse)

if(Color.TryParse("#ccff66", out var colorValue))
{
    // 변환 성공 처리
}
else
{
    // 변환 실패 처리
}

Color 객체를 HEX 문자열로 변환

HEX 값을 Color로 변환할 수 있는 것처럼, 반대로 Color 객체를 HEX 문자열로 변환하는 방법도 필요합니다.

var colorValue = Colors.Red;
var hexString = ColorToHexConverter.ToHexString(colorValue, AlphaComponentPosition.Leading);
Debug.WriteLine(hexString);

결과:

FFFF0000

위 결과에서 # 기호가 없고 Alpha 값이 포함되어 있습니다. 이를 조절하기 위해 추가 매개변수를 사용할 수 있습니다:

var colorValue = Colors.Red;
var hexString = ColorToHexConverter.ToHexString(colorValue, AlphaComponentPosition.Leading, false, true);
Debug.WriteLine(hexString);

결과:

#FF0000

이 방식이 더 원하시는 형식인가요?

태그: Avalonia UI-개발 색상-변환 WPF-대체 XAML

6월 1일 11:40에 게시됨