1

在 w8 应用程序中使用列表项时,我如何确定悬停和单击样式是什么?

我的列表视图如下所示:

<ListView x:Name="itemsListView"
          TabIndex="1"
          Visibility="Visible"
          Padding="10,0,0,0" Foreground="Black"
          ItemsSource="{Binding Nodes.Nodes}"
          behaviors:ListViewItemClickedToAction.Action="{Binding SelectNodeAction}"
          IsItemClickEnabled="True" FontFamily="Global User Interface"
          >
    <ListView.ItemTemplate>
        <DataTemplate>
                <TextBlock Text="{Binding Name}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

当我使用鼠标悬停时,我得到白色字母和几乎白色的背景。

我曾尝试重复使用 Adventureworks 购物者应用程序的部分内容,因此可以复制其中的样式。但是,我无法理解应用于 ListView 项目的内容。

4

1 回答 1

1

您可能已经是新手了,但是如果您查看此屏幕截图,您会发现在 VS2012 中您可以轻松地创建内置样式的副本。当您按下“编辑副本...”时,将出现一个对话框,您可以在其中选择项目中您希望放置样式的位置。

您可以继承样式。样式的继承按以下方式工作:

<Style x:Name="BasicStyle" TargetType="Button">
    <Setter Property="Background" Value="Green" />
</Style>

<Style x:Name="ButtonStyle" TargetType="Button" BasedOn="{StaticResource BasicStyle}">
    <Setter Property="Foreground" Value="Red" />
</Style>

您可以通过几个步骤进行继承,以便另一个按钮样式可以继承“ButtonStyle”。因此,如果您想将其分离或重用样式的行为和外观,您可以制作仅包含 Template 属性的样式。但是您不能将 Visual State Manager 拆分为多个样式,因为如果您继承了设置模板属性的样式,然后如果要更改该样式的 Hover 状态,则需要复制整个模板并仅更改该部分在代码中。

我认为如果您可以制作一种仅包含按下状态的样式,然后制作另一种仅包含悬停效果的样式,那么这将是 MS 的一个很好的改进,依此类推。

我希望这能回答您的问题 :) 如果您有任何关于 XAML 的问题,我很乐意回答!

于 2013-10-04T14:24:34.690 回答