6

我无法理解 Windows 8 Metro 应用程序中的一种样式定义。

当你用 VS 创建一个 Metro 风格的应用程序时,还有一个名为

常见的

创建的。在这个文件夹里面有一个文件叫做

标准样式.xaml

现在以下代码段来自该文件:

<!-- Grid-appropriate 250 pixel square item template as seen in the GroupedItemsPage and ItemsPage -->
<DataTemplate x:Key="Standard250x250ItemTemplate">
    <Grid HorizontalAlignment="Left" Width="250" Height="250">
        <Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
            <Image Source="{Binding Image}" Stretch="UniformToFill"/>
        </Border>
        <StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
            <TextBlock Text="{Binding Title}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="60" Margin="15,0,15,0"/>
            <TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
        </StackPanel>
    </Grid>
</DataTemplate>

我在这里不明白的是静态资源定义,例如边界

Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}"

这与您如何使用模板、绑定和资源无关。

这个ListViewItemPlaceholderBackgroundThemeBrush在哪里?

非常感谢您的帮助。

迪米

4

2 回答 2

7

在 Windows 8 客户预览版中,您可以在以下位置找到包含资源定义(包括 ListViewItemPlaceholderBackgroundThemeBrush)的文件:

C:\Program Files (x86)\Windows Kits\8.0\Include\winrt\xaml\design\themeresources.xaml

于 2012-07-20T15:43:38.600 回答
5

这是微软文档中应该包含的令人难以置信的令人沮丧的事情之一,但(还没有)。

ListViewItemPlaceholderBackgroundThemeBrush 是系统画笔资源之一。它由 Metro “Light” 或 “Dark” 主题(无论您为应用选择哪个)定义。

您可以在 Blend 中查看系统画笔的完整列表。(不幸的是,我还没有找到在代码中枚举它们的任何方法。似乎没有任何编程方式来检查主题资源。)

这里有一些步骤可以让您进入完整列表。(当然,如果您已经熟悉 Blend,可以将这些步骤缩写。)

  1. 打开表达式混合。
  2. 创建一个新项目,然后选择 XAML(Windows Metro 风格)> 空白应用程序 (XAML),然后单击确定。
  3. 在设计图面上单击以选择网格。(在左下角的“对象和时间线”停靠窗口中,“[网格]”行将突出显示。)
  4. 在右上角的属性停靠窗口中,找到“画笔”类别。
  5. 就在“背景:无刷”的下方,有一排五个按钮。单击最右侧的按钮(“画笔资源”)。

系统刷资源列表将出现在列表框中。

在此处输入图像描述

于 2012-06-28T12:04:32.183 回答