1

Item ごとに 3 つの TextBlock を持つ ListView があります。最初のものはデフォルトの色 (黒) で、他のものは Foreground プロパティがグレーに設定されています。

アイテムを選択すると、最初の TextBlock の色は青になりますが、他のテキスト ブロックは灰色のままで読みにくいです。

アイテムが選択されたときにすべてのテキストが白色になるようにしたい。どうすればいいですか?

編集:私のスタイル:

 <UserControl.Resources>
        <Style TargetType="{x:Type ListViewItem}">
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Foreground" Value="White"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </UserControl.Resources>

マイリストビュー

        <ListView  x:Name="lvResultat"  Grid.Row="0" Grid.Column="1" Background="{x:Null}"  
                      Margin="4"                       
                      HorizontalContentAlignment="Stretch"
                           ScrollViewer.VerticalScrollBarVisibility="Auto"
                      ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                      IsSynchronizedWithCurrentItem="True"    

                      ItemsSource="{Binding ResultatsRecherche}" SelectedItem="{Binding ResultatSelectione, Mode=TwoWay}" BorderBrush="{x:Null}" MouseDoubleClick="lvResultat_MouseLeftDoubleClick" >
        <ListView.ItemTemplate>
            <DataTemplate DataType="viewModel:ResultatRechercheViewModel">
                <Grid Height="86" Margin="2"  >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="1.5*"/>
                        <RowDefinition Height="1*"/>
                        <RowDefinition Height="1*"/>
                        <RowDefinition Height="0.5*"/>
                    </Grid.RowDefinitions>
                    <TextBlock Text="{Binding Titre}" 
                                       FontSize="20" FontWeight="Bold"  />
                    <TextBlock Text="{Binding SousTitre}" Grid.Row="1" 
                                       FontStyle="Italic" Foreground="Gray"/>
                    <TextBlock Text="{Binding Resume}" Grid.Row="2"  TextTrimming="WordEllipsis"
                                        Foreground="Gray"/>

                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

私も次のようなことを試しました

<Style TargetType="ListViewItem">
    <Style.Resources>
        <!--<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="White" />-->
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White" />
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="White" />
    </Style.Resources>
</Style>

編集 2: カスタム スタイルが、デフォルト プロパティが Foreground (黒) の Textblock の色を変更することを発見しました。最初のテキストブロックのテキストの色に黒を指定すると、アイテムが選択されたときにテキストの色が変化しなくなります。

写真 : ここに画像の説明を入力

4

3 に答える 3

0

前景 listView アイテムにスタイルを使用してみてください:

 <Style TargetType="{x:Type ListViewItem}">
      <Style.Triggers>
           <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Foreground" Value="White"/>
           </Trigger>
       </Style.Triggers>
 </Style>
于 2013-11-04T11:26:53.547 に答える