Application.RequestedTheme 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
앱의 전체 테마에 대한 밝은 어두운 기본 설정을 결정하는 값을 가져오거나 설정합니다.
public:
property ApplicationTheme RequestedTheme { ApplicationTheme get(); void set(ApplicationTheme value); };
ApplicationTheme RequestedTheme();
void RequestedTheme(ApplicationTheme value);
public ApplicationTheme RequestedTheme { get; set; }
var applicationTheme = application.requestedTheme;
application.requestedTheme = applicationTheme;
Public Property RequestedTheme As ApplicationTheme
<application RequestedTheme="applicationThemeMemberName" .../>
속성 값
열거형 값입니다. 초기 값은 Windows 설정에서 사용자가 설정한 기본 테마입니다.
예제
이 예제에서는 요청된 테마를 로컬 앱 설정에 저장한 다음, 앱을 다시 시작할 때 검색하여 적용하는 방법을 보여 있습니다.
<ToggleSwitch Header="Theme" OnContent="Light" OffContent="Dark"
Toggled="ToggleSwitch_Toggled" Loaded="ToggleSwitch_Loaded"/>
private void ToggleSwitch_Toggled(object sender, RoutedEventArgs e)
{
// Save theme choice to LocalSettings.
// ApplicationTheme enum values: 0 = Light, 1 = Dark
ApplicationData.Current.LocalSettings.Values["themeSetting"] =
((ToggleSwitch)sender).IsOn ? 0 : 1;
}
private void ToggleSwitch_Loaded(object sender, RoutedEventArgs e)
{
((ToggleSwitch)sender).IsOn = App.Current.RequestedTheme == ApplicationTheme.Light;
}
App.xaml.cs
public App()
{
this.InitializeComponent();
// Get theme choice from LocalSettings.
object value = ApplicationData.Current.LocalSettings.Values["themeSetting"];
if (value != null)
{
// Apply theme choice.
App.Current.RequestedTheme = (ApplicationTheme)(int)value;
}
}
설명
"밝게"과 "어둡게"라는 두 가지 테마가 내장되어 있습니다. 기본적으로 앱은 Windows 설정에서 사용자가 설정한 테마를 사용하여 실행됩니다(설정 > 개인 설정 > 색 > 기본 앱 모드 선택). 앱의 RequestedTheme 속성을 설정하여 사용자 기본값을 재정의하고 사용되는 테마를 지정할 수 있습니다.
테마는 앱이 실행되는 동안이 아니라 앱이 시작될 때만 설정할 수 있습니다. 앱이 실행되는 동안 RequestedTheme을 설정하려고 시도하면 예외가 throw됩니다(Microsoft .NET 코드의 경우 NotSupportedException ). 사용자에게 앱 UI의 일부인 테마를 선택할 수 있는 옵션을 제공하는 경우 앱 데이터에 설정을 저장하고 앱을 다시 시작할 때 적용해야 합니다. 앱 설정에 대한 자세한 내용은 설정 및 기타 앱 데이터 저장 및 검색을 참조하세요.
속성을 사용하고 FrameworkElement.RequestedTheme UI의 특정 요소에 값을 설정하는 경우 Application.RequestedTheme이 적용된 후 런타임에 특정 테마 값을 변경할 수 있습니다.
시스템 값을 사용하는 "HighContrast" 테마도 있지만 앱 및 앱 코드는 앱을 고대비로 전환하는 다른 기술을 사용합니다. 사용자가 고대비 모드에서 실행 중인 경우 RequestedTheme 속성은 무시됩니다. 고대비 테마 및 XAML 고대비 스타일 샘플을 참조하세요.
앱은 런타임에 테마를 전환할 수 없지만 사용자는 Windows 8.1부터 시작할 수 있습니다. 예를 들어 사용자는 Alt+Shift+PrtScn 키 바로 가기를 사용하여 앱이 실행되는 동안 고대비 테마를 사용하도록 설정할 수 있습니다. 이 경우 XAML 리소스 시스템은 {ThemeResource} 태그 확장 사용에 대한 리소스 값을 다시 계산합니다. 색 및 브러시와 같은 테마에 적합한 리소스는 원래 해당 테마를 요청한 앱이 아니더라도 현재 테마에 적합한 값을 사용합니다.
테마별 리소스는 일반적으로 XAML의 별도 리소스 사전에 정의됩니다. 이 리소스 사전은 컨트롤 템플릿에 ThemeDictionaries 사용되는 기본 ResourceDictionary 속성에서 가져옵니다. 테마별 리소스의 기본 시스템 리소스 사전 이름은 ThemeResources.xaml입니다. 이 파일은 Windows SDK(소프트웨어 개발 키트) 설치의 Program Files)\Windows Kits\10\DesignTime\CommonConfiguration\Neutral\UAP<SDK version>\Generic 폴더에서 사용할 수 (있습니다.
Windows 8 대한 참고 사항
(이 섹션은 Windows 10 UWP 앱이 아닌 Windows 8 대한 앱에만 적용됩니다.)
기본적으로 앱은 "어둡게" 테마를 사용하여 실행됩니다(themeresources.xaml 파일에서 "어둡게" 리소스의 키 이름은 "기본값").
Windows에서 RequestedTheme을 설정하면 ElementTheme.Default 항상 "어둡게"가 테마가 됩니다. Windows Phone 값을 사용하면 ElementTheme.Default 사용자가 설정한 시스템 테마에 대한 쿼리가 발생합니다.
적용 대상
추가 정보
피드백
다음에 대한 사용자 의견 제출 및 보기