Laden...

WPF: Setzen der Farbe eines List-Eintrages (SolidColorBrush)

Erstellt von gelöschtem Konto vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.098 Views
Gelöschter Account
vor 14 Jahren
WPF: Setzen der Farbe eines List-Eintrages (SolidColorBrush)

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?

446 Beiträge seit 2004
vor 14 Jahren

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

Gelöschter Account
vor 14 Jahren

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.

Gelöschter Account
vor 14 Jahren

Hallo? Weiss keiner eine Antwort darauf??