gpt4 book ai didi

c# - 停止突出显示所选项目 WPF ComboBox

转载 作者:行者123 更新时间:2023-11-30 14:41:46 25 4
gpt4 key购买 nike

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

我假设有一些方法可以在 XAML 中阻止它,但到目前为止我还没有找到解决方案。

谢谢。

附言我无权访问 Expression Blend,所以如果有人建议使用 XAML 的解决方案

编辑:为了让我更清楚,我选择了我的意思是一旦你选择了一个值并且 SelectionChanged 事件已经触发并且该项目显示在组合框中并且组合框突出显示如下: alt text

最佳答案

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

    <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>

你会看到如下:

http://i.stack.imgur.com/b4pDo.png

UPD:为了从所选项目中移除突出显示,您需要修改实际用于这些目的的系统画笔。只需添加两个额外的样式:

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

关于c# - 停止突出显示所选项目 WPF ComboBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3829315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com