SolidColorBrush im Style.Trigger

  • WPF

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Fabien.

    SolidColorBrush im Style.Trigger

    Guten Morgen,

    ich hab ein kleines Problem, ich habe eine Liste von Dimensionen und von denen sind einige aggregierende Dimensionen zu einer Kennziffer/-zahl,
    die von mir in einem DataTrigger Grün eingefärbt werden.
    Bzgl. zum Problem ist das der Highlightbrush (Blau) überhaupt nicht zur Farbe Grün passt und die Namen schlecht zu Lesen sind.

    Meine Frage an euch? Wie kann ich ein HighlightBrushKey eine Farbe ohne ein SolidColorBrush in einem Style.Trigger zuweisen?


    Wie zum Beispiel hier:

    XML-Quellcode

    1. <Style.Resources>
    2. <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue" />
    3. </Style.Resources>


    So siehts momentan aus:

    XML-Quellcode

    1. <Style x:Key="ItemStyle" TargetType="{x:Type ListBoxItem}">
    2. <Style.Resources>
    3. <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="LightBlue" />
    4. </Style.Resources>
    5. <Style.Triggers>
    6. <Trigger Property="ItemsControl.AlternationIndex" Value="1">
    7. <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}"></Setter>
    8. </Trigger>
    9. <Trigger Property="{Binding IsCompatible}" Value="True"> <!-- Hier sollte helles Blau sein -->
    10. <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" ></Setter>
    11. </Trigger> <DataTrigger Binding="{Binding IsCompatible}" Value="False"> <!-- Hier sollte dunkel Blau sein -->
    12. <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" ></Setter>
    13. </DataTrigger>
    14. </Style.Triggers>
    15. </Style>


    Danke :)

    Beste Grüße

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fabien“ ()

    man kann den HighlightBrushKey eines ItemsControls überschreiben.

    XML-Quellcode

    1. <Style TargetType="ListBox" BasedOn="{StaticResource inheritBackground}">
    2. <Style.Resources>
    3. <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>>
    4. <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Yellow"/>
    5. </Style.Resources>
    6. </Style>
    Danke für deine Antwort "ErfinderDesRades", ich habe das nun ohne HighlightBrushKey gelöst.
    Einfach mit einer Dep-Propertie, die ein boolen Wert liefert, wenn ich in der ListBox ein Item selektiert habe.

    XML-Quellcode

    1. <DataTemplate.Triggers>
    2. <DataTrigger Binding="{Binding IsSelected}" Value="True">
    3. <Setter Property="ListBoxItem.Background" Value="Red"/>
    4. </DataTrigger>
    5. <DataTrigger Binding="{Binding IsCompatible}" Value="True">
    6. <Setter Property="TextBlock.Foreground" Value="Green"/>
    7. </DataTrigger>
    8. </DataTemplate.Triggers>



    Beste Grüßen & einen Schönen Tag