将BitmapEffectProperty分配给代码中的触发器

时间:2013-05-28 21:33:35

标签: wpf listbox bitmapeffect

我在代码中创建了几个ListBox - es,我在后面设置代码中的样式和触发器(我必须因为每个ListBox是不同的,并且多个属性在生命周期中发生变化ListBox,所以我无法在XAML中执行此操作。)

我是这样做的,除了为IsMouseOver触发器属性添加阴影效果外,一切正常。

DropShadowBitmapEffect myDropShadowEffect = new DropShadowBitmapEffect();
myShadowColor.ScA = 1; 
myShadowColor.ScB = 0;
myShadowColor.ScG = 0;
myShadowColor.ScR = 0;
myDropShadowEffect.Color = myShadowColor;
...

Trigger trigger = new Trigger();
trigger.Property = UIElement.IsMouseOverProperty;
trigger.Value = true;
trigger.Setters.Add(new Setter { Property = ListBoxItem.BitmapEffectProperty, Value = myDropShadowEffect });

for (int i = 0; i < myListBox; i++)
{
  var x = new Style();
  //Bunch of Style setters  
  x.Triggers.Add(trigger);

  myListBox[i].ItemContainerStyle = x;
}
你能帮我理解我在那里做错了什么吗?

1 个答案:

答案 0 :(得分:0)

我编辑了这行

trigger.Setters.Add(new Setter { Property = ListBoxItem.BitmapEffectProperty, Value = myDropShadowEffect });