0

ItemTemplate にいくつかの TextBlocks を含む ListBox があります。この TextBlocks は次のように定義されます

<TextBlock Grid.Column="1" Grid.Row="0" Text="{BindingGasStationName}" 
    FontSize="20" FontFamily="Segoe WP SemiLight" Margin="0,0,0,0" Padding="0"
    MinHeight="27" TextTrimming="WordEllipsis"/>

省略記号は期待どおりに機能しています。問題は、ユーザーが項目を選択すると、テキストの色 (および "...") が現在のシステムの強調表示色に変わることです。これが私が欲しいものです。ただし、ユーザーが選択を変更すると、テキストが再び白に戻っている間、「...」はハイライト色のままになります。

これは既知のバグですか、それとも私が何か間違ったことをしたのでしょうか?

更新
ユーザーが無効な色の省略記号を含む項目を再度選択すると、ハイライト色が再度設定される前に、しばらくの間白くなっています...

4

1 に答える 1

1

私は自分の側でエラーを再現しました.WPのバグのように見えます.

回避策は、手動でListBoxItemスタイリングを行うことVisualStatesです。ListBoxItem正しいアクセント カラーで完全に (省略記号を含めて) ハイライト表示する方法の例をここに含めました。を設定し、ControlTemplateListBoxItem選択状態と選択状態の前景色を指定します。お役に立てれば!

<ListBox Name="TheListBox">
        <ListBox.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="Foreground" Value="{StaticResource PhoneAccentBrush}"/>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Border x:Name="LayoutRoot" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" HorizontalAlignment="{TemplateBinding HorizontalAlignment}" VerticalAlignment="{TemplateBinding VerticalAlignment}">
                                <VisualStateManager.VisualStateGroups>
                                    <VisualStateGroup x:Name="CommonStates">
                                        <VisualState x:Name="Normal"/>
                                        <VisualState x:Name="MouseOver"/>

                                    </VisualStateGroup>
                                    <VisualStateGroup x:Name="SelectionStates">
                                        <VisualState x:Name="Unselected">
                                            <Storyboard>
                                                <ColorAnimation Duration="0" To="{StaticResource PhoneForegroundColor}" Storyboard.TargetProperty="(Control.Background).(SolidColorBrush.Color)" Storyboard.TargetName="ContentContainer" d:IsOptimized="True"/>
                                                <ColorAnimation Duration="0" To="{StaticResource PhoneForegroundColor}" Storyboard.TargetProperty="(Control.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="ContentContainer" d:IsOptimized="True"/>
                                            </Storyboard>
                                        </VisualState>
                                        <VisualState x:Name="Selected">
                                            <Storyboard>
                                                <ColorAnimation Duration="0" To="{TemplateBinding Foreground}" Storyboard.TargetProperty="(Control.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="ContentContainer" d:IsOptimized="True"/>
                                            </Storyboard>
                                        </VisualState>
                                        <VisualState x:Name="SelectedUnfocused">
                                            <Storyboard>
                                                <ColorAnimation Duration="0" To="{TemplateBinding Foreground}" Storyboard.TargetProperty="(Control.Foreground).(SolidColorBrush.Color)" Storyboard.TargetName="ContentContainer" d:IsOptimized="True"/>
                                            </Storyboard>
                                        </VisualState>
                                    </VisualStateGroup>
                                </VisualStateManager.VisualStateGroups>
                                <ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="#FF1BA1E2" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Background="Black" BorderBrush="Black"/>
                            </Border>
                        </ControlTemplate>

                    </Setter.Value>
                </Setter>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Grid.Column="1" Grid.Row="0" Text="{Binding}" 
FontSize="20" FontFamily="Segoe WP SemiLight" Margin="0,0,0,0" Padding="0"
MinHeight="27" TextTrimming="WordEllipsis"/>

            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
于 2012-06-21T12:51:08.020 に答える