C#WPF风格的触发器在代码隐藏中不起作用
我正在尝试向WPF数据模板添加触发器,我将在DataGrid中将其用作单元格模板。我需要以编程的方式来做这件事,所以这一切都在代码背后。我希望在鼠标悬停在边框上时将其高亮显示,但它似乎不起作用C#WPF风格的触发器在代码隐藏中不起作用,c#,wpf,triggers,styles,datatemplate,C#,Wpf,Triggers,Styles,Datatemplate,我正在尝试向WPF数据模板添加触发器,我将在DataGrid中将其用作单元格模板。我需要以编程的方式来做这件事,所以这一切都在代码背后。我希望在鼠标悬停在边框上时将其高亮显示,但它似乎不起作用 DataTemplate dt = new DataTemplate(); // other implementation Trigger t1 = new Trigger() { Property = IsMouseOverProperty, Value = true }; t1.Setters.A
DataTemplate dt = new DataTemplate();
// other implementation
Trigger t1 = new Trigger() { Property = IsMouseOverProperty, Value = true };
t1.Setters.Add(new Setter(BorderBrushProperty, System.Windows.Media.Brushes.Black));
t1.Setters.Add(new Setter(BorderThicknessProperty, new Thickness(4.0)));
dt.Triggers.Add(t1);
// add to visual tree, and other logic that works perfectly.
唯一不起作用的就是这个触发器。当我将鼠标移到单元格上时,它不会高亮显示边框。怎么了?您必须指定
触发器和设置器操作的元素
设置触发器的SourceName
属性和设置器的TargetName
:
var dt = new DataTemplate();
var t1 = new Trigger()
{
SourceName = "source",
Property = IsMouseOverProperty,
Value = true
};
t1.Setters.Add(new Setter(BorderBrushProperty, Brushes.Black, "target"));
t1.Setters.Add(new Setter(BorderThicknessProperty, new Thickness(4.0), "target"));
dt.Triggers.Add(t1);
这里的源名称和目标名称是什么?