重新托管的工作流设计器 - 只读视图

时间:2009-11-03 11:07:18

标签: .net-3.5 workflow-foundation designer

我已经在自己的应用程序中重新托管了工作流设计器。现在我想将工作流视图设为只读。我知道我可以禁止拖放但删除和移动也应该被禁用。我仍然希望用户能够在视图中滚动。

任何人都可以提供帮助。

祝你好运, 迈克尔

2 个答案:

答案 0 :(得分:5)

您可以访问设计器视图以执行此类操作。

var designerView = myDesigner.Context.Services.GetService<DesignerView>();

然后设置为只读模式。

designerView.IsReadOnly = true;

这也会使属性视图只读 - 不确定这是否是你需要的。

答案 1 :(得分:2)

我想出了这个解决方案:

  1. 创建一个继承自WorkflowDesignerMessageFilter的MessageFilter,并将其附加到WorkflowView。
  2. 覆盖方法OnKeyDown

        if (eventArgs.KeyCode == Keys.Delete)
        {
            if(m_WorkflowView.AllowDrop)
            {
                return base.OnKeyDown(eventArgs);
            }
        }
        return true;
    
  3. 在这种情况下,我在只读视图上将AllowDrop设置为false,在DesignTime中设置为true。如果有人有更好的建议,请告诉我。

    祝你好运, 迈克尔