在选择中更改listview内的textblock的字体颜色

时间:2013-04-22 13:59:09

标签: c# xaml windows-8 datatemplate listviewitem

当我选择该列表视图项时,我正在尝试更改作为列表视图项的文本块的颜色。 listview项的数据模板如下:

  <DataTemplate x:Key="DataTemplate">
    <Grid Height="47" VerticalAlignment="Stretch" Width="{Binding tbIng.Width}">
      <TextBlock x:Name="tbIng" FontFamily="{StaticResource Neutra2Text-Book}" FontSize="23" Text="50g of butter" HorizontalAlignment="Left" VerticalAlignment="Center" Padding="2"/>
    </Grid> 
  </DataTemplate>

我正在尝试使用混合来查找我需要更改的内容,使用状态窗口,但我似乎找不到文本块。如果我右键单击listview - &gt;编辑模板 - &gt;编辑当前然后我得到数据模板但不能使用状态窗口。这是一个Windows 8应用程序。

我想在xaml中执行此操作,而不是代码

3 个答案:

答案 0 :(得分:1)

在StandardStyles.xaml文件中添加下面提到的代码并更改所需的颜色:

<SolidColorBrush x:Key="ListViewItemSelectedForegroundThemeBrush" Color="Red" /> 

答案 1 :(得分:0)

我可以想到两条路径:

  • 您可以使用独立的全局/公共变量并绑定到它。因此,当ViewState更改时,DataTemplate然后TextBlock背景将根据此变量更改颜色。
  • Binding对象本身中的变量传递给它。例如,如果您绑定到表中的行 - 只需添加值为TextBlock背景的另一列并绑定到它

答案 2 :(得分:0)

从Blend中,您可以更改Generated Item Container(ItemContainerStyle)以覆盖ListView项目的所有状态和属性。 为此,请使用上图菜单中的上一级菜单:

enter image description here

并编辑与按下,选择等相关的状态...

enter image description here