3

ListBox にフォーカスがあるかどうかに関係なく、強調表示された項目が同じように見える ListBox を作成しようとしています。

基本的に、SystemColors.ControlBrushKey の色プロパティを SystemColors.HighlightBrushKey の色と同じに設定したいと考えています。

私は次のように使用できると思いました:

<ListBox>
    <ListBox.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" 
                         Color="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
    </ListBox.Resources>
</ListBox>

しかし、これは実際には次のエラーをスローします。

System.Windows.Markup.XamlParseException: プロパティ 'System.Windows.Media.SolidColorBrush.Color' を設定すると例外がスローされました。---> System.ArgumentException: '#FF3399FF' はプロパティ 'Color' の有効な値ではありません

私が設定した場合、それは正常にColor="#FF3399FF"動作します。

私は何を間違っていますか?

4

1 に答える 1

5

私を正しい方向に向けてくれたNicholasWの功績-ListBoxの完全なコードは次のとおりです。

<ListBox Width="200" Height="200">
    <ListBox.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" 
                         Color="{DynamicResource {x:Static SystemColors.HighlightColorKey}}" />
    </ListBox.Resources>
    <ListBox.ItemContainerStyle>
        <Style>
            <Style.Triggers>
                <Trigger Property="Selector.IsSelected" Value="True">
                    <Setter Property="TextElement.Foreground" Value="White"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListBox.ItemContainerStyle>
    <ListBoxItem IsSelected="True">Item A</ListBoxItem>
    <ListBoxItem>Item B</ListBoxItem>
    <ListBoxItem>Item C</ListBoxItem>
</ListBox>
于 2012-04-13T11:36:12.023 に答える