5

Windows 8 ストア アプリケーションを構築していますが、ListView で TextBlock の強調表示/選択された色を変更できません。

ListView を作成する方法は次のとおりです。

<ListView x:Name="zonesList" HorizontalAlignment="Left" Height="516" Margin="50,175,0,0" ItemTemplate="{StaticResource LocalizationCellSample}" VerticalAlignment="Top" Width="355" DataContext="{Binding}" SelectionChanged="zonesList_SelectionChanged"/>

そして私のデータバインディング:

<DataTemplate x:Key="LocalizationCellSample">
  <Grid HorizontalAlignment="Left">
    <TextBlock Style="{StaticResource ListBoxTextStyle}" TextWrapping="Wrap" Width="200" MaxHeight="20" VerticalAlignment="Center" Text="{Binding name}" HorizontalAlignment="Left" Margin="20,5,0,0" FontFamily="Global User Interface"/>
  </Grid>
</DataTemplate>

最も簡単な方法は何ですか?

編集:

ここに ListBoxTextStyle があります

<Style x:Key="ListBoxTextStyle" TargetType="TextBlock">
  <Setter Property="FontFamily" Value="Segoe UI Light" />
  <Setter Property="FontSize" Value="16" />
</Style>
4

3 に答える 3

1

ListView に ItemContainerStyle を追加する

ItemContainerStyleVisual Studio の "DocumentOutline" パネルに図のように追加します。次に、VisualState以下のように編集します。

<VisualState x:Name="Selected">
    <Storyboard>
        <ColorAnimation Duration="0" To="Red" Storyboard.TargetProperty="(ContentPresenter.Foreground).(SolidColorBrush.Color)"
                        Storyboard.TargetName="contentPresenter" />
    </Storyboard>
</VisualState>
<VisualState x:Name="SelectedUnfocused">
    <Storyboard>
        <ColorAnimation Duration="0" To="Red" Storyboard.TargetProperty="(ContentPresenter.Foreground).(SolidColorBrush.Color)" 
                        Storyboard.TargetName="contentPresenter" />
    </Storyboard>
</VisualState>

通常、"contentPresenter"はデフォルトで に追加さItemContainerStyleれます。Foreground変更すると、文字の"contentPresenter"色が変わります。

Background選択した のについてはListViewItem、上記とほぼ同じです。

ちなみに、WP8.1少なくともで動作します。そして、あなたがそれをするならBlend、それはより簡単になります.

于 2015-11-10T10:48:04.657 に答える
0

これを Common フォルダーの standardstyles.xaml ファイルに追加してみてください。

<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="#009ACD"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="#CCC"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="#00688B"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="Black" Opacity="0"></SolidColorBrush>

resourcedictionary タグ内

したがって、次のようになります。

<ResourceDictionary.ThemeDictionaries>
    <ResourceDictionary x:Key="Default">

        <SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="#009ACD"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="#CCC"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemSelectedPointerOverBackgroundThemeBrush" Color="#00688B"></SolidColorBrush>
        <SolidColorBrush x:Key="ListViewItemSelectedPointerOverBorderThemeBrush" Color="Black" Opacity="0"></SolidColorBrush>


    </ResourceDictionary>


</ResourceDictionary.ThemeDictionaries>

このようにして、リストビュー内のすべてのアイテムが選択されたときに特定の色になります。

于 2013-03-12T15:44:55.840 に答える
-1

以下のコードを StandardStyles.xaml ファイルに追加し、必要な色を変更します。

   <SolidColorBrush x:Key="ListViewItemSelectedForegroundThemeBrush" Color="Red" /> 
于 2013-04-26T09:26:13.797 に答える