以编程方式将MultiTrigger添加到ContentControl子类

时间:2013-04-05 09:12:41

标签: c# wpf triggers

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

1 个答案:

答案 0 :(得分:0)

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