Настраиваемая активность переопределяет двойной щелчок и детально отключает открытую активность
Я использую пользовательскую активность и переопределяю метод 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());
}
}