1
改變所選項目的前景我有此XAMLWPF SystemColors.HighlightTextBrushKey IsFrozen = True;如何在ListBox控件
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Value="#123456"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Value="White"/>
的第一個工程,第二個沒有。在MSDN,SystemColors.HighlightTextBrushKey說,它「ISFROZEN」,不能改變的,所以我在風格嘗試這樣:
<Trigger Property="IsSelected" Value="true">
<Setter Property="Foreground" Value="White" />
</Trigger>
這也不起作用,任何指導將是很有益的,謝謝。
編輯 - 附加的XAML
<ListBox ItemContainerStyle="{DynamicResource ListBoxItemStyle}"
AlternationCount="2"
Margin="8,37,8,74"
x:Name="listClientOUContents"
HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Height="22" HorizontalAlignment="Stretch">
<Image Margin="-2,0,0,0" Source="{Binding Path=ADsPath, Converter={StaticResource ImxConverter}}" HorizontalAlignment="Left" Width="22" />
<TextBlock HorizontalAlignment="Stretch" Margin="20,3,0,0" Text="{Binding Path=DisplayValue}" />
<Rectangle HorizontalAlignment="Stretch" Fill="White" Stroke="White" Margin="-2,0,-2,0.5" VerticalAlignment="Bottom" Height="1" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
這裏是ItemContainerStyle我使用
<Style x:Key="ListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="FontSize" Value="12" />
<Setter Property="FontFamily" Value="Tahoma" />
<Setter Property="Background" Value="#006C3B3B"/>
<Style.Resources>
<!-- Selected and Focused -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FF533F70"/>
<!-- Selected and UN-focused -->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#FF533F70"/>
<Storyboard x:Key="MouseOverStoryBoard">
<ColorAnimationUsingKeyFrames AutoReverse="True" BeginTime="00:00:00" Storyboard.TargetName="{x:Null}" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)">
<SplineColorKeyFrame KeyTime="00:00:00" Value="#FFF48F21"/>
<SplineColorKeyFrame KeyTime="00:00:00.5000000" Value="#FF4A475C"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</Style.Resources>
<Style.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter Property="Foreground" Value="White" />
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background">
<Setter.Value>
<SolidColorBrush Color="#a1a1a1"/>
</Setter.Value>
</Setter>
<Setter Property="Foreground" Value="black"/>
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#a1a1a1"/>
<Setter Property="Foreground" Value="black"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MouseOverStoryBoard}"/>
</Trigger.EnterActions>
<Setter Property="Foreground" Value="White" />
<Setter Property="Background" Value="#FFF48F21"/>
<Setter Property="FontStyle" Value="Normal"/>
</Trigger>
</Style.Triggers>
</Style>
你能展示更多的XAML(列表框元素和列表框中包含的所有相關元素)嗎? – Scott 2009-10-16 18:02:38
是的......我用更多的xaml編輯了這個問題。 – Nate 2009-10-16 18:20:43