0

一切正常,直到我调用 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”的初始化引发了异常

4

1 回答 1

0

您只能将 EventTriggers 放入<ContentControl.Triggers>集合中。

于 2013-04-05T10:28:15.340 回答