选择 ListViewItem 时如何更改文本块颜色?

How to change Textblock color when the ListViewItem is selected?

在 Windows 8.1 商店应用程序中选择 ListViewItem 时如何更改文本块的颜色?

<ListView>
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding text}" Name="Mytxt" Foreground="Black"></TextBlock>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

您可以在 SelectionChanged 事件中更改颜色:

参考下面的Link:

https://msdn.microsoft.com/fr-fr/library/windows/apps/windows.ui.xaml.controls.primitives.selector.selectionchanged.aspx

设置 ListViewItem 样式并更改选中时的颜色:

  <Style x:Key="{x:Type ListViewItem}" TargetType="ListViewItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListViewItem">
                <Grid SnapsToDevicePixels="true" Background="Transparent">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Selected">
                                <Storyboard>
                                    <DoubleAnimation 
                                                Storyboard.TargetName="buttonBackgroundShape" 
                                                Storyboard.TargetProperty="Opacity" To="1" Duration="0"/>
                                </Storyboard>
                            </VisualState>

                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>

                    <Rectangle Name="buttonBackgroundShape" Stretch="Fill" Opacity="0" Fill="Red" Height="50" SnapsToDevicePixels="True" />
                    <ContentPresenter x:Name="buttonText" Margin="30,0,30,0" TextBlock.FontSize="12pt" Content="{Binding Path=Name}" VerticalAlignment="Center"/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
<ListView>
    <ListViewItem Name="listViewItem1" Selected="listViewItem1_Selected">
        <TextBlock Text="{Binding text}" Name="Mytxt"/>
    </ListViewItem>
</ListView>

private void listViewItem1_Selected(object sender, RoutedEventArgs e)
{
    Mytxt.Foreground = Brushes.Red;
    Mytxt.Background = Brushes.Green;
}