WPF使用ItemTemplate更改Listboxitem中复选标记的颜色
任何WPF专家都可以向我展示如何修改样式,以便更改ListBoxItem中复选框的复选标记颜色。到目前为止,我从MahApps Styleing中拼凑出以下内容:WPF使用ItemTemplate更改Listboxitem中复选标记的颜色,wpf,listboxitem,checkedlistbox,Wpf,Listboxitem,Checkedlistbox,任何WPF专家都可以向我展示如何修改样式,以便更改ListBoxItem中复选框的复选标记颜色。到目前为止,我从MahApps Styleing中拼凑出以下内容: <Style TargetType="ListBox" BasedOn="{StaticResource MetroListBox}" x:Key="CheckBoxList" > <Setter Property="Template"> <Setter.Value>
<Style TargetType="ListBox" BasedOn="{StaticResource MetroListBox}" x:Key="CheckBoxList" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
CornerRadius="3">
<ScrollViewer>
<ItemsPresenter />
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=IsSelected}"
Content="{Binding}"/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ListBoxItem" BasedOn="{StaticResource MetroListBoxItem}">
<Setter Property="MinHeight" Value="20" />
<Setter Property="Margin" Value="0,0,0,5" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border x:Name="Border"
Background="{TemplateBinding Background}"
SnapsToDevicePixels="True">
<ContentPresenter Margin="5, 0, 0, 0"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="Border" Property="Background" Value="{DynamicResource AccentSelectedColorBrush}" />
<Setter Property="Foreground" Value="{DynamicResource TextBrush}" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="Background">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource AccentColor3}" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource GrayBrush5}" />
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsEnabled" Value="False" />
<Condition Property="IsSelected" Value="True" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter TargetName="Border" Property="Background" Value="{DynamicResource GrayBrush5}" />
<Setter Property="Foreground" Value="{DynamicResource AccentSelectedColorBrush}" />
</MultiTrigger.Setters>
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="True" />
</MultiTrigger.Conditions>
<Setter TargetName="Border" Property="Background" Value="{DynamicResource AccentSelectedColorBrush}" />
</MultiTrigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True" />
<Condition Property="Selector.IsSelectionActive" Value="True" />
</MultiTrigger.Conditions>
<MultiTrigger.Setters>
<Setter TargetName="Border" Property="Background">
<Setter.Value>
<SolidColorBrush Color="{DynamicResource AccentColor3}" />
</Setter.Value>
</Setter>
</MultiTrigger.Setters>
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
问候
Alan在这里,您可以参考此问题的答案…即为复选框定义自己的模板:
1转到youtube,播放《捉鬼敢死队》的配乐。2转到microsoft.com并搜索复选框样式。3复制粘贴样式并更改表示记号的路径的颜色。4如果你在配乐结束前就做了,那就宣布自己是专家