2017-10-03 3 views
1

UWP 응용 프로그램 창 크기를 조정할 때 오른쪽에 표시되는 기본 흰색 배경을 변경해야하며이를 동적으로 수행해야합니다.C# UWP 글로벌 응용 프로그램 배경 변경

var newBackground = Application.Current.Resources["ApplicationPageBackgroundThemeBrush"] as SolidColorBrush; 
if (newBackground != null) 
{ 
    newBackground.Color = newColor; 
} 

newBackground이 변경되지만 응용 프로그램에 영향을 미치는하지 :

나는 노력했다.

어떤 도움이 필요합니까? 당신이 generaic.xaml에 ApplicationPageBackgroundThemeBrush을 검사 할 때

(generaic.xaml 무엇 konw하기 : 당신이 당신의 문제에 대한 ApplicationPageBackgroundThemeBrush

Application.Current.Resources["ApplicationPageBackgroundThemeBrush"] = Colors.Red; 
+0

코드에서 '배경'이란 무엇입니까? –

+0

실수입니다. 제 질문을 업데이트했습니다. – user3239349

+0

'ApplicationPageBackgroundThemeBrush'를 덮어 쓰시겠습니까? –

답변

0

우리는 백그라운드에서 뭔가를 확인해야 here을 볼 수 있습니다. ApplicationPageBackgroundThemeBrush가 "Default", "HighContrast"및 "Light"에서 세 번 정의되어 있음을 알 수 있습니다. 따라서 요청 테마를 호출하면 모든 테마가 다른 테마로 변경됩니다. 당신이 "어둠"당신이 찾을 수에 요청 테마를 변경하는 경우

this.RequestedTheme = ElementTheme.Dark 

따라서, 귀하의 질문으로 돌아가 변경 색상 코드가 :

newBackground.Color = newColor; 

기본 설정에 대한이 있기 때문에 변경되지 않습니다 "Dark". (기본/Light 테마에서 작동) 그리고 런타임에이 테마 브러시를 코드 숨김에서 수정할 수없는 것 같습니다.

나는 이것에 대한 유일한 방법은 에 테마 색상 자신이 다음 명시 적으로 요소를 설정 하여 색상을 변경을 만들 생각합니다.

테마 색상을 설정합니다. 새로운 acrylic document은 우리에게 좋은 지적입니다. 여기에 당신이 기본 테마가 작동하는 방법을 보여위한 간단한 샘플을 쓰기 :

<ResourceDictionary.ThemeDictionaries> 
    <ResourceDictionary x:Key="Default"> 
     <SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="Blue"></SolidColorBrush> 
    </ResourceDictionary> 
    <ResourceDictionary x:Key="Dark"> 
     <SolidColorBrush x:Key="ApplicationPageBackgroundThemeBrush" Color="Yellow"></SolidColorBrush> 
    </ResourceDictionary> 
</ResourceDictionary.ThemeDictionaries> 
  • 이 app.xaml에 추가 :

    <Application.Resources> 
        <ResourceDictionary> 
         <ResourceDictionary.MergedDictionaries> 
          <ResourceDictionary Source="Dictionary1.xaml"/> 
         </ResourceDictionary.MergedDictionaries> 
        </ResourceDictionary> 
    </Application.Resources> 
    

    1. 다음 코드를 사전 만들기 및 삽입

    명시 적으로 요소를 설정하려면 mygrid.background = xxxx와 같이하십시오. 크기를 조정할 때 트리거하려는 경우 adaptivetrigger에서 속성을 변경하십시오.

  • 0

    를 오버라이드 (override) 할 경우