Hallo Gemeinde, ich habe ein ListView mit einem GridView darin. Wenn ich mit der Mouse einen Eintrag anklicke wird dieser automatisch blau hinterlegt. Kann man das irgendwie verhindern. Ich habe diverse Style-Eigenschaften in meinem XAML-Code probiert - ohne Erfolg. Der IsSelected - Zustand tritt offenbar erst ein, wenn der ListView den Focus verliert. IsFocused bringt auch nix. Welche Eigenschaft muss ich ändern?
<Style TargetType="{x:Type ListViewItem}" >
<Setter Property="Height" Value="17" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontFamily" Value="Verdana" />
<Setter Property="FontSize" Value="10" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="#FF567676" />
</Trigger>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background" Value="White" />
</Trigger>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Foreground" Value="Black" />
<Setter Property="Background" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
Weg bekomme ich den blauen Balken, indem ich am Ende des SelectionChanged - Events einfach irgend einem anderen Control den Focus verpasse. Aber das muss doch auch anders, sauberer, gehen.
Und wie kann man eigentlich ein Thema auf "erledigt" setzen?
MAY THE FORCE BE WITH YOU !!!
An dem Problem habe ich auch sehr lange gearbeitet.
In dem folgenden XAML Ausschnitt sind 3 Trigger aufgeführt. Ich denke, dass wird dein Problem lösen.
<ControlTemplate TargetType="{x:Type ListViewItem}">
<Border Margin="10" BorderBrush="White" BorderThickness="5" CornerRadius="10" Padding="10" Background="{TemplateBinding Background}">
<ContentControl HorizontalContentAlignment="Stretch" HorizontalAlignment="Center">
<StackPanel>
<Image Source="{Binding Path=ImgPath}" Width="150" Height="100" Stretch="Fill" Margin="5"/>
<TextBlock
TextWrapping="Wrap"
Width="150"
Text="{Binding Path=ElementContent}"
Foreground="{TemplateBinding Foreground}"
Background="{TemplateBinding Background}">
</TextBlock>
</StackPanel>
</ContentControl>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<!--Wenn das Item selected ist und aktiv-->
<Setter Property="Background" Value="Black"/>
<Setter Property="Foreground" Value="Yellow"/>
</Trigger>
<Trigger Property="IsSelected" Value="false">
<!--Wenn das Item nicht selected ist-->
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Foreground" Value="Black"/>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="true"/>
<Condition Property="Selector.IsSelectionActive" Value="false"/>
</MultiTrigger.Conditions>
<!--Wenn das Item selected ist und nicht aktiv-->
<Setter Property="Background" Value="Black"/>
<Setter Property="Foreground" Value="Orange"/>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>