一切正常,直到我调用 this.Triggers.Add(TriggerFocus)。此类是 ContentControl 的子类。
这是我的代码:
private void CreateTriggers()
{
TriggerFocus = new MultiTrigger
{
Conditions =
{
new Condition
{
Property = IsFocusedProperty,
Value = true
},
new Condition
{
Property = IsKeyboardFocusedProperty,
Value = true
}
},
Setters =
{
new Setter
{
Property = SetFocusProperty,
Value = true
},
}
};
this.Triggers.Add(TriggerFocus);
}
有任何想法吗?
这是等效的 xaml,它也会引发错误:
<ContentControl.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ContentControl.IsFocused" Value="True"/>
<Condition Property="ContentControl.IsKeyboardFocused" Value="True"/>
</MultiTrigger.Conditions>
<Setter TargetName="BorderFocus" Property="ContentControl.Visibility" Value="Visible" />
</MultiTrigger>
</ContentControl.Triggers>
经过一些测试,我已将问题隔离到上面的 MultiTrigger 上。如果我将触发器放在模板或样式中,它似乎工作正常。
抛出的错误信息不是很丰富:“System.Windows.Controls.ContentControl”的初始化引发了异常