当ListViewItem被选中时,如何改变Textblock的颜色



如何改变文本块的颜色时,当ListViewItem被选择在Windows 8.1商店应用程序?

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

设置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>

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

请参阅下面的链接:

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

<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;
}

最新更新