2012-08-11 5 views
4

이상한 문제가 있습니다. 메트로 앱에서 내 페이지의 배경을 설정할 수 없습니다. 다음은 문제는 페이지의 배경이 검은 색이다 내 XAML 구조메트로 응용 프로그램에서 페이지 배경을 설정하는 방법

<Page Background="White"> 
    <ListView Background="Red"> 

    </ListView> 
</Page> 

의 간단한이다. 그래서 빨간색 사각형 (ListView 영역) 검정 배경에 설정했습니다. 나는 내 페이지를 흰색으로하고 싶다. 나는 몇 가지 예를 보았고 나는 좋게 보였다. 나는 또한 브러쉬로 시도했지만 동일한 결과를 얻었습니다.

답변

6

앱에 모든 페이지에 흰색 배경이 나타나게하려면 가장 간단한 방법은 App.xaml 파일에서 Light에 RequestedTheme을 설정하는 것입니다. 이렇게하면 배경이 흰색이 될뿐만 아니라, 전경색 (텍스트 등)이 기본적으로 검은 색이되는 것처럼 다른 모든 색상도 자동으로 변경됩니다. 한 페이지에 대한

<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      ... 
      RequestedTheme="Light"> 

나는 항상 페이지 rootcontainer으로 그리드를 사용했습니다 그것은 잘 작동 :

<common:LayoutAwarePage 
    x:Name="pageRoot" 
    ... 
    > 

    <Grid Background="White"> 

주 당신은 색상 대신 이미지를 배경으로 사용하려는 경우 첨부 된 속성으로 작업해야합니다 :

+0

xx에서 설명하고 사용할 수 있습니다. 그러나 VS에 의해 생성 된 템플릿에는 태그가 없으므로 이 다른 조합을 테스트했지만 여전히 배경을 변경할 수 없습니다. 나 한테 더 많은 코드가 필요해? – Fixus

+1

Ok 해결책을 찾았습니다. 전체 높이와 전체 너비로 뻗어있는 기본 루트 요소 인 GRID를 만들었습니다. 그 격자에 대한 배경을 설정했는데 제대로 작동합니다. – Fixus

+3

응용 프로그램 태그는 App.xaml에 있습니다. – Bart

4

나는 페이지의 기본 스타일이 배경색을 설정하려는 시도를 무시하고 있다는 점을 생각합니다.

StandardStyles.xaml 파일을 보면 파일의 맨 끝에있는 LayoutRootStyle이 포함되어 있습니다. 기본값을 16 진수 색상 값으로 변경하면 (예 : # FFFF0000이 빨간색으로 표시됨) 앱의 배경이 그에 따라 변경됩니다. 이것은 당신이 원하는 것을 할 수있는 간단한 방법이지만, 모범 사례는 아닙니다.

<Style x:Key="LayoutRootStyle" TargetType="Panel"> 
    <Setter Property="Background" Value="{StaticResource ApplicationPageBackgroundThemeBrush}"/> 
    <Setter Property="ChildrenTransitions"> 
     <Setter.Value> 
      <TransitionCollection> 
       <EntranceThemeTransition/> 
      </TransitionCollection> 
     </Setter.Value> 
    </Setter> 
</Style> 

또는 루트 그리드 요소의 배경을 설정하여 좀 더 세밀하게 제어 할 수 있습니다. 또는 페이지의 Page.Resources 섹션에서 규칙을 복사 한 다음 배경 설정 도구의 값을 수정하여 LayoutRootStyle을 재정의하는 사용자 정의 스타일을 만들 수 있습니다. 도움이

<Page.Resources> 
    <Style x:Key="LayoutRootStyle" TargetType="Panel"> 
     <Setter Property="Background" Value="#FFFF0000"/> 
     <Setter Property="ChildrenTransitions"> 
      <Setter.Value> 
       <TransitionCollection> 
        <EntranceThemeTransition/> 
       </TransitionCollection> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</Page.Resources> 

희망 :

여기가 어떻게 보일지입니다.

+0

작동하지 않습니다. 스타일 xaml을 변경하고 xaml 페이지에 추가하면 작동하지 않습니다./dunno why – Fixus

+0

해결책을 찾았습니다. 대답 상단에 주석으로 설명되어 있습니다. – Fixus

+0

참고로 XAML 테마는 https://msdn.microsoft.com/en-us/library/windows/apps/dn518235.aspx –

관련 문제