我想在选择Fill
时反映FrameworkElement
中ListViewItem
的颜色(ListViewItem
)。
问题在于,应该具有所选颜色的FrameworkElement
位于嵌套DataTemplate
中的另一个DataTemplateSelector
中。
示例:
<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
中文本的字体颜色绑定的颜色相同,但在选中时会反转。
答案 0 :(得分:0)
阅读How to set a WPF ListView Selected Item color?和WPF ListView Highlight Color don't change
你所要做的就是将你的颜色与Bordes的BackGround绑定。
答案 1 :(得分:-2)
您必须拥有所选项目的索引号。在后端代码上。找到索引并设置System.Drawing,Color Of your Choice。
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
}
}