C# 停止高亮显示所选项目WPF组合框

C# 停止高亮显示所选项目WPF组合框,c#,.net,wpf,combobox,wpf-controls,C#,.net,Wpf,Combobox,Wpf Controls,我目前正在开发一个WPF UI,我的窗口上有一个组合框。 因此,我希望用户能够从这个组合框中选择一个项目,但当它被选中时 我不希望它以默认的蓝色突出显示 我假设在XAML中有某种方法可以阻止这种情况,但到目前为止我还没有找到解决方案 谢谢 另外,我没有Expression Blend的访问权限,所以如果有人建议使用XAML解决方案 编辑:为了让它更清楚,我选择了我的意思是,一旦你选择了一个值,SelectionChanged事件被触发,项目显示在组合框中,组合框被高亮显示,如下所示: 您需要通过

我目前正在开发一个WPF UI,我的窗口上有一个组合框。 因此,我希望用户能够从这个组合框中选择一个项目,但当它被选中时 我不希望它以默认的蓝色突出显示

我假设在XAML中有某种方法可以阻止这种情况,但到目前为止我还没有找到解决方案

谢谢

另外,我没有Expression Blend的访问权限,所以如果有人建议使用XAML解决方案

编辑:为了让它更清楚,我选择了我的意思是,一旦你选择了一个值,SelectionChanged事件被触发,项目显示在组合框中,组合框被高亮显示,如下所示:

您需要通过样式设置所选内容的外观

    <Window.Resources>
    <Style TargetType="{x:Type ComboBoxItem}">
        <Setter Property="Control.Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ComboBoxItem}">
                    <Border Background="{TemplateBinding Background}">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <Border Margin="2" Grid.Row="0" Background="Azure" />
                            <ContentPresenter />
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Background" Value="Green" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</Window.Resources>

此样式将自动应用于窗口中的任何组合框:

<StackPanel>
    <ComboBox>
        <ComboBoxItem>111</ComboBoxItem>
        <ComboBoxItem>222</ComboBoxItem>
        <ComboBoxItem>333</ComboBoxItem>
        <ComboBoxItem>444</ComboBoxItem>
        <ComboBoxItem>555</ComboBoxItem>
    </ComboBox>
</StackPanel>

111
222
333
444
555
您将看到如下内容:

UPD:为了从所选项目中删除高亮显示,您需要修改实际用于这些目的的系统笔刷。只需添加两种额外样式:

    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>  


您是否尝试设置ComboBox.Background属性?

谢谢,这很有帮助,但我的意思是,当您选择一个项目(比如333)时,下拉列表关闭,所选项目显示在ComboBox中,在该项目为空之前,我不希望它像默认情况下一样高亮显示。“SolidColorBrush x:Key=“{x:Static SystemColors.HighlightBrushKey}”的UPD位为我做了这件事,感谢它更改了默认外观的背景,它不会阻止它在聚焦时高亮显示