在w8应用中使用listitem时,如何确定是什么赋予了悬停和点击样式?
我的列表视图如下所示:
<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>
当我使用鼠标悬停时,我会得到白色字母和几乎白色的背景。
我已经尝试重复使用部分冒险工作购物者应用程序,因此有复制的样式。但是,我无法理解应用于ListView项目的内容。
答案 0 :(得分:1)
您需要创建自定义ListViewItem
,请查看ListViewItem styles and templates。
您需要自定义各种视觉状态。
答案 1 :(得分:1)
您可能已经是新手了但是如果您查看screenshot,您可以看到您在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的更多问题!