Hallo,
habe hier ein kleines Problem. Per Maus kann man in einer Listview mehrere EInträge anwählen, sodass sie angewählt bleiben wenn man mit der Maus drüberfährt und die Linke Maustaste gedrückt hält. Klappt auch soweit.
Das Problem:
Die angewählten Einträge haben eine etwas komische Highlight-Farbe. Ich würde gerne dieselbe Farbe haben, wie wenn ich von Hand einen Eintrag anklicke (dieses schöne Blau das in Hellblau übergeht).
Ich denke, dass man das irgendwie mit SolidColorBrush hinbekommt, aber wie geht das und wie bekomme ich dieselbe Farbe wie beim normalen anklicken?
Hallo,
da gibts mehrere möglichkeiten.
Entweder du definierst für das ListBoxItem ein Template:
<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="{StaticResource AuthorGradient}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
oder du überschreibst den SystemColors.HighlightBrushKey Key.
Bzw. siehe:
http://msdn.microsoft.com/de-de/library/system.drawing.systemcolors_members.aspx
und
http://www.wpftutorial.net/ListBoxSelectionBackground.html
Beispiel:
<Style TargetType="{x:Type ListBoxItem}">
<Style.Resources>
<!-- Background of selected item when focussed -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red" />
<!-- Background of selected item when not focussed -->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Green" />
</Style.Resources>
</Style>
Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp
Danke, ich habe das auch mehr oder weniger so gemacht. Die Markierten Items sind auch schön farbig. Aber sie sehen anders aus, als wenn sie automatisch eingefärbt werden (zB druch klicken mit der Maus auf einen List-Eintrag) . Bei mir werden sie "nur" einfarbig, blau, gelb, was auch immer...
Ich glaube es hat mit der Funktion opaCity zu tun. Ich möchte das ganze im Code Behind realisieren.