다음을 통해 공유


C의 테마 지정#

.NET MAUI에서 지원하는 모든 플랫폼은 밝고 어두운 모드를 지원합니다. 최종 사용자에게 최상의 환경을 제공하기 위해서는 이를 애플리케이션 디자인으로 고려해야 합니다. C# 태그 패키지는 시스템 현재 테마에 따라 교환할 속성 값을 정의하는 기능을 제공합니다(Microsoft 설명서 참조).

앱 테마 값을 정의하는 방법에는 두 가지가 있습니다.

1. 특정 BindableObject

C#을 사용하여 애플리케이션의 사용자 인터페이스를 빌드할 때 확장 메서드를 사용하여 밝고 어두운 모드 AppThemeBinding 에 대한 값을 정의할 수 있습니다.

다음 예제에서는 다음을 사용하여 만드는 Label 방법을 보여줍니다.

  1. Text 시스템이 라이트 모드일 때는 "라이트 모드", 애플리케이션이 어둡게 모드인 경우 "어둡게 모드"를 표시하도록 속성을 설정합니다.
  2. TextColor 시스템이 라이트 모드이고 애플리케이션이 어둡게 모드 Colors.White 에 있는 경우로 속성을 Colors.Black 설정합니다.
new Label()
    .AppThemeBinding(Label.TextProperty, "Light Mode", "Dark Mode")
    .AppThemeColorBinding(Label.TextColorProperty, Colors.Black, Colors.White);

2. Style

일반적으로 컨트롤의 여러 인스턴스에 적용할 수 있는 코드를 만들고 Style 애플리케이션의 사용자 인터페이스를 빌드하는 데 필요한 코드를 간소화하는 것이 좋습니다. 이를 위해 클래스에서 사용할 수 있는 AppThemeBinding 메서드가 Style<T> 있습니다.

다음 예제에서는 이전 예제와 동일한 동작으로 for를 Label 만드는 Style 방법을 보여줍니다.

  1. Text 시스템이 라이트 모드일 때는 "라이트 모드", 애플리케이션이 어둡게 모드인 경우 "어둡게 모드"를 표시하도록 속성을 설정합니다.
  2. TextColor 시스템이 라이트 모드이고 애플리케이션이 어둡게 모드 Colors.White 에 있는 경우로 속성을 Colors.Black 설정합니다.
var labelStyle = new Style<Label>()
    .AddAppThemeBinding(Label.TextProperty, "Light Mode", "Dark Mode")
    .AddAppThemeBinding(Label.TextColorProperty, Colors.Black, Colors.White);

new Label
{
    Style = labelStyle
};