WPF リストボックスでフォーカスを移動すると、選択した項目のスタイルが失われます 質問する

WPF リストボックスでフォーカスを移動すると、選択した項目のスタイルが失われます 質問する

私には何がありますか?

ListBoxXML ファイルからの項目が入力されています。 DynamicResourceforプロパティと、 inStyleのトリガーが指定されています。IsSelectedItemContainerStyle

私は何をしたいのでしょうか?

フォーカスが から外れた後も、選択した項目を強調表示したままにしたいですListBox

どのような問題に直面しているのでしょうか?

項目を選択すると、IsSelectedトリガーで指定されたスタイルが機能します。ただし、フォーカスをリスト ボックスの外に移動すると (Tab キーを押すか、他のコントロールをクリックする)、選択した項目のスタイルが失われます。選択した項目のスタイルを保持する方法はありますか?

前もって感謝します!

ベストアンサー1

参照された回答場合によっては、これで問題が解決しますが、コントロールが無効/読み取り専用の場合に機能しなくなり、カラー スキームを利用せずに上書きしてしまうため、理想的ではありません。ListBox タグに次のコードを追加することをお勧めします。

<ListBox....>
    <ListBox.Resources>
            <Style TargetType="ListBoxItem">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Border Name="Border" Padding="2" SnapsToDevicePixels="true">
                                <ContentPresenter />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsSelected" Value="true">
                                    <Setter TargetName="Border" Property="Background"
                                            Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
        </Style>
    </ListBox.Resources>
</ListBox>

これにより、リスト ボックス項目が選択されるたびに (コントロールの状態に関係なく)、その項目のハイライト背景色が設定されます。

私の回答は、これらの回答に対してすでに与えられた回答と、次のブログの助けに基づいています。http://blogs.vbcity.com/xtab/archive/2009/06/29/9344.aspx

おすすめ記事