如何通过Powershell代码更改特定WPF列表框项的背景颜色?

时间:2017-12-13 13:39:58

标签: wpf windows-10 powershell-v3.0 listboxitem

我已经构建了一个WPF表单,表单及其控件都运行良好。 我可以通过按钮单击事件添加项目,通过不同的按钮单击事件清除项目,通过列表框上的双击事件将各个列表框项目的内容复制到剪贴板。

我只想通过代码(不是通过所选项目)来定制和更改特定列表框项目的背景颜色。 控制变量是$ lbxCopy并且正在成功运行,如:

$lbxCopy.add_MouseDoubleClick($zlbxCopyMouseDoubleClick)

我尝试用来更改列表框中第一项的代码是:

$lbxCopy.Items[0].Background = "Red"

失败消息是:

在此对象上找不到属性“背景” 验证该属性是否存在且可以设置 在winCopyList_Event_Master.ps1:108 char:1
+ $ lbxCopy.Items [0] .Background =“Red”
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo:InvalidOperation:(:) [],RuntimeException     + FullyQualifiedErrorId:PropertyAssignmentException

以下是Window_Loaded事件的代码:

$zwinCopyListLoaded = {
#- Initial Load of the Listbox data -----
#- Calls a sub-process that successfully load the listbox -----
. $zLoadListBox

$lbxCopy.Background = "Red" 
#- The above works but sets the whole listbox background color.

$lbxCopy.Items[0].Background = "Blue"
#- The above fails !

}#-End of Window Loaded event -----
#-------------------------------------------------------------
#- Window Loaded ~ Event-Monitor -----
$winCopyList.add_Loaded($zwinCopyListLoaded)

我希望能够通过代码事件选择特定的列表框项目,而不是通过选择事件 我确信我做的事情很愚蠢,就像我有一个盲点一样,当我得到一个我正在挣扎的这个刺激的答案时,我会打动我的头!

其他说明:Windows 10桌面; 64位架构; Powershell 4;我不明白'C';我只是Powershell&的学习者。 WPF;我使用Google / MSDN / StackOverflow搜索但没有成功。

我确实尝试过这篇文章而没有成功:
https://www.codeproject.com/Articles/8134/Coloring-items-in-a-ListBox

提前为我的愚蠢道歉。

1 个答案:

答案 0 :(得分:0)

我发现以下帖子中的建议成功,我现在正在使用它。非常感谢那些发布的人。

https://stackoverflow.com/questions/43565540#43565540

$ListBox = $Window.FindName("ListBox")
#- Repeat the code below for each 'Items.Add' -----
$itm = new-object System.Windows.Controls.ListboxItem
$itm.Content = 'test red'
$itm.Background = 'red'
$ListBox.Items.Add($itm)