4

奇妙な問題があります。メトロ アプリで自分のページの背景を設定できません。以下は私のxaml構造の簡単なビューです

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

    </ListView>
</Page>

問題は、ページの背景が黒いことです。そのため、黒い背景に赤い四角形 (ListView 領域) が設定されています。ページを白くしたい。いくつかの例を見ましたが、うまくいったようです。ブラシでも試しましたが同じ結果です。

4

2 に答える 2

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">

単一のページの場合、私は常にグリッドをページのルートコンテナとして使用してきましたが、それはうまくいきました:

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

    <Grid Background="White">

色の代わりに画像を背景として使用する場合は、添付されたプロパティを操作する必要があることに注意してください。

<Grid>
    <Grid.Background>
        <ImageBrush x:Name="backgroundGrid" ImageSource="/Assets/Paper.jpg" />
    </Grid.Background>
于 2012-08-12T08:19:41.007 に答える
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>

または、ルート Grid 要素の背景を設定することもできます。これにより、より詳細な制御が可能になります。または、ページの Page.Resources セクションで LayoutRootStyle をオーバーライドするカスタム スタイルを作成し、ルールをそのセクションにコピーしてから、Background セッターの値を変更することもできます。

これは次のようになります。

<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>

それが役立つことを願っています。

于 2012-08-11T21:16:10.100 に答える