Настраиваемая активность переопределяет двойной щелчок и детально отключает открытую активность

Я использую пользовательскую активность и переопределяю метод OnMouseDoubleClick. Все работает хорошо, но после двойного щелчка на Activity это само отображается в дизайнере. Это означает, что в конструкторе отображается не весь рабочий процесс, а только это действие. Как отключить самооткрывающееся действие в пользовательском конструкторе. Вот мой код в ActivityDesigner.xaml.cs

    /// <summary>
    /// Raises the <see cref="E:System.Windows.Controls.Control.MouseDoubleClick"/> routed event.
    /// </summary>
    /// <param name="e">The event data.</param>
    protected override void OnMouseDoubleClick(MouseButtonEventArgs e)
    {
        e.Handled = true;
        this.OpenDialogOnDoubleClick();
    }

1 ответ

Решение

Чтобы отключить это поведение, вы должны использовать ActivityDesignerOptionsAttribute, в частности его свойство AllowDrillIn.

Используйте его в своем классе деятельности:

[ActivityDesignerOptions(AllowDrillIn = false)]
public sealed class MyActivity : CodedActivity
{
    /* ... */
}


Или, если вы используете IRegisterMetadata:

internal class Metadata : IRegisterMetadata
{
    private AttributeTable attributes;

    // Called by the designer to register any design-time metadata.
    public void Register()
    {
        var builder = new AttributeTableBuilder();

        builder.AddCustomAttributes(
            typeof(MyActivity),
            new ActivityDesignerOptionsAttribute{ AllowDrillIn = false });

        MetadataStore.AddAttributeTable(builder.CreateTable());
    }
}
Другие вопросы по тегам