选择“项”时更改列表视图项内容的颜色

本文关键字:视图 颜色 列表 选择 | 更新日期: 2023-09-27 18:18:16

我想在选择ListViewItem时反转ListViewItemFrameworkElement的颜色(Fill(。

问题是应该具有所选颜色的FrameworkElement位于嵌套DataTemplateSelector的另一个DataTemplate中。

例:

         <ListView>
            <ListViewItem>
                <ContentPresenter>
                    <ContentPresenter.ContentTemplateSelector>
                        <selector:IconTypeSelector>
                            <selector:IconTypeSelector.SuperImportantIcon>
                                <DataTemplate>
                                    <Rectangle Width="27"
                                           Height="27"
                                           Fill="{DynamicResource ColorThatShouldChange}"><!--This is what i want to have the font color of my ListViewElements  -->
                                    </Rectangle>
                                </DataTemplate>
                            </selector:IconTypeSelector.SuperImportantIcon>
                        </selector:IconTypeSelector>
                    </ContentPresenter.ContentTemplateSelector>
                </ContentPresenter>
            </ListViewItem>
        </ListView>

最好的情况是:我的FrameworkElement(例如Rectangle(绑定的颜色与ListViewItem中文本的字体颜色相同,该颜色在选择时会反转。

选择“项”时更改列表视图项内容的颜色

阅读 如何设置 WPF 列表视图

选定项颜色? 和 WPF 列表视图突出显示颜色不会更改

您所要做的就是将您的颜色绑定到Bordes的后台。

您必须

具有所选项目的索引号。 在后端代码上。找到索引并设置系统,绘图,您选择的颜色。

 for (int i = 0; i < list.Items.Count; i++)
    {
        if (list.Items[i].Bounds.Contains(e.Location) == true)
        {
            list.Items[i].BackColor = Color.Blue; // highlighted item
        }
        else
        {
            list.Items[i].BackColor = SystemColors.Window; // normal item
        }
    }