【发布时间】:2021-03-25 15:59:42
【问题描述】:
我试图制作一个具有某些行的 ListView 将与其他行有不同的 PointerOver 颜色(取决于此行上的数据绑定)。目前,当指针移动到任何行时,我尝试更改 ListViewItemBackgroundSelected
private void lvResult_PointerEntered(object sender, PointerRoutedEventArgs e)
{
lvResult.SelectedItem = ((FrameworkElement)sender).DataContext;
Debug.WriteLine("Hover Item :" + lvResult.SelectedIndex);
if (lvResult.SelectedIndex % 2 == 0){ //just put sample condition here
lvResult.Resources["ListViewItemBackgroundPointerOver"] = new SolidColorBrush(Color.FromArgb(150, 250, 12, 170));
lvResult.Resources["ListViewItemBackgroundSelected"] = new SolidColorBrush(Color.FromArgb(150, 250, 12, 170));
lvResult.Resources["ListViewItemBackgroundSelectedPointerOver"] = new SolidColorBrush(Color.FromArgb(150, 250, 12, 170));
}else{
lvResult.Resources["ListViewItemBackgroundPointerOver"] = new SolidColorBrush(Color.FromArgb(150, 255, 0, 255));
lvResult.Resources["ListViewItemBackgroundSelected"] = new SolidColorBrush(Color.FromArgb(150, 255, 0, 255));
lvResult.Resources["ListViewItemBackgroundSelectedPointerOver"] = new SolidColorBrush(Color.FromArgb(150, 255, 0, 255));
}
}
但看起来它不起作用。那你能帮我一下吗?
【问题讨论】: