WPF 在选择时更改 ListboxItem 突出显示颜色

2024-04-01

我在设置时遇到问题HighlightBrushKey of a SelectedItem of a Listbox在 WPF 中。我的目的是根据代码中给定的布尔值设置项目的颜色。

我尝试了以下步骤:

  • 实现转换器,检查布尔值并返回正确的颜色。

    例子:

    <ribbon:RibbonWindow.Resources>
      <l:WindowControl x:Key="ListBoxItemBackgroundConverter" />
        <Style x:Key="listBoxStyle" TargetType="{x:Type ListBoxItem}">
          <Style.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{Binding Source={x:Static SystemColors.HighlightBrushKey}, Converter={StaticResource ListBoxItemBackgroundConverter}}"/>
            <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{Binding Source={x:Static SystemColors.ControlBrushKey}, Converter={StaticResource ListBoxItemBackgroundConverter}}"/>
          </Style.Resources>
        </Style>
    </ribbon:RibbonWindow.Resources>
    

    这里的问题是 Convert 方法只被调用一次,但我需要在每次选择一个项目并检查布尔值时调用 Converter。就像触发器一样,但是带有“HighlightBrushKey".

    转换器:

    public object Convert(object value, Type targetType,
                          object parameter, CultureInfo culture)
    {
       if(currentField == null)
          return Brushes.Yellow;
       if (currentField.Save)
          return Brushes.LightGreen;
       else
          return Brushes.Yellow;
    }
    
  • 我的下一个想法是设置“HighlightBrushKey" to "Transparent”并改变item.Background手动在代码中。这里的问题是我的项目变成白色并且无法看到背景颜色

    Example:

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

提前致谢! :)


<Style x:Key="listBoxStyle" TargetType="{x:Type ListBox}">
    <Style.Resources>
         <!-- Background of selected item when focussed -->
         <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red" />
         <!-- Background of selected item when not focussed -->
         <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Green" />
    </Style.Resources>
</Style>

<ListBox Style="{StaticResource listBoxStyle}">
</ListBox> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 在选择时更改 ListboxItem 突出显示颜色 的相关文章

随机推荐

  • 如何在 x86_64 主机上使用 Setup.py 构建 32 位 Python 模块分发版

    我需要编译一个 32 位发行版PyEphem http rhodesmill org pyephem 这似乎并不困难 但是 我遇到了一些编译器问题 CFLAGS m32 python setup py bdist p i386 runnin
  • 使用 Javascript/jQuery 确定标题从何处中断到下一行?

    HTML 假设我有固定宽度的容器 其中一些标题将超过一行 我想隔离这些线并对每条线做单独的事情 有没有一种方法 使用 JavaScript 来计算标题中断到下一行的位置 例如在每行周围放置一个跨度 Hacky 和 dirty 在同一个容器中
  • 这种错误查找技术的名称是什么?是否存在可以自动执行该技术的程序?

    假设我有一些巨大的程序P我知道其中有一个错误 当我带参数运行它时A它打印出丑陋的错误消息E 在 shell 表示法中 会发生这种情况 P A E 现在我不知道是什么原因导致了这个错误 但它似乎是确定性的 我找到错误的方法是 隔离 它 我 减
  • Mac 应用程序上的“锁定”屏幕

    在 Mac OS X 中 我需要调用什么 API 才能将窗口不仅覆盖整个屏幕 而且还覆盖菜单栏和停靠栏 另外 是否可以有效地将屏幕 锁定 到这个位置 禁用任务控制 启动板等 我已在应用程序委托的实现文件中尝试了以下代码 void awake
  • Javascript MVC 框架的目的[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我想知道 Javascript MVC 框架 例如 Backbone js 和 Spine js 的用途 作为一名热心 经验丰富的 Ruby o
  • jquery:在选择更改时按名称调用函数

    我正在尝试按名称调用函数 onchange选择但没有任何反应 当功能描述在属性之后时 它就起作用了 这不起作用 HTML
  • 行中的三个按钮 -> 调整大小以适合父级宽度

    我有这个布局 Linear Layout Scroll View Relative Layout 9x 按钮 在这样的视图中 3x3 网格 o o o o o o o o o 每个按钮都有它的背景 没有文字 背景如下
  • 从javascript隐藏handsontable的列

    有什么方法可以隐藏 JavaScript 中的热门列吗 要求是要隐藏的列将作为 javascript 中的参数出现 并且相应的列将相应地显示隐藏 HOT 有 rowHeaders 和 colHeaders 以及 20 列的数据 请指教 过时
  • 如何在 zip 文件上使用 grep 命令

    我想从 zip 文件中 grep 查找今天的日期 怎么能做到这一点呢 我有一个名为 sen2616 z 的 zip 文件 我想获取今天日期 09 02 2014 的所有数据 请用zipgrep zgrep适用于 gz 文件 不适用于 zip
  • 查找后面不跟某个字符的“单词”

    搜索的正则表达式是什么word后面不跟的字符串 symbol 例如 mywordLLD OK myword dff OK myword ld Exclude The 消极的展望 http www regular expressions in
  • YouTube API - 按发布日期查询

    我正在编写一个网络应用程序 它使用 YouTube 代码 API 来执行特定类型的搜索 在本例中 我尝试搜索与查询匹配且在两个日期之间上传的所有视频 这个文件 http code google com apis youtube 2 0 de
  • 在Python中将文件更改为只读模式

    我正在编写一个数据处理代码 在其中创建一个新文件 将处理后的数据写入该文件并关闭 但该文件必须以只读模式关闭 以免被意外修改 这可以用 Python 完成吗 为此 您使用os chmod https docs python org 2 li
  • 有 Groovy 的源代码格式化程序吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我在 Java 项目中使用 Jalopy 的商业版本 但它不适用于 Groovy 文件 Intelli
  • 处置 SqlCommand

    Because SqlCommand实施IDisposable 我通常会按如下方式处理 ADO 查询 using SqlConnection connection new SqlConnection connectionString usi
  • 测试 Javascript 中未定义的嵌套对象[重复]

    这个问题在这里已经有答案了 可能的重复 javascript测试嵌套对象键是否存在 https stackoverflow com questions 2631001 javascript test for existence of nes
  • GruntJs 'grunt' cmd 打开 Visual Studio?

    我已经能够使用GruntJs https github com cowboy grunt在几个零问题的个人项目上 我决定在我的工作项目中使用它 I run grunt init gruntfile这样就可以创建 gruntfile 和 pa
  • oracle 11G中自动删除最旧的分区

    如果分区超过三个月 我需要从间隔分区表中删除分区 是否有 Oracle 实用程序 函数可以执行此操作 或者如果没有 如何实现 请指导我 Database version Oracle 11G 我不知道有任何 Oracle 实用程序或函数可以
  • 索引有不同的表空间有什么逻辑原因吗?

    您好 有人可以告诉我为什么我们为索引和数据创建不同的表空间吗 人们普遍认为 将索引和表保存在单独的表空间中可以提高性能 现在 许多受人尊敬的专家认为这是一个神话 参见这个 问汤姆 主题 搜索 神话 https asktom oracle c
  • J2ME中的GUI设计

    我最近一直在研究移动编程 我实际上尝试了J2ME 抛光 GUI 框架 http www j2mepolish org 虽然用 Polish 制作的 GUI 看起来相当不错 但我意识到用户界面并不是我想要的 我开始在网络上搜索 Stack O
  • WPF 在选择时更改 ListboxItem 突出显示颜色

    我在设置时遇到问题HighlightBrushKey of a SelectedItem of a Listbox在 WPF 中 我的目的是根据代码中给定的布尔值设置项目的颜色 我尝试了以下步骤 实现转换器 检查布尔值并返回正确的颜色 例子